z02
This commit is contained in:
parent
ac563779c2
commit
1abb1b50ec
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/home/stud/p8q-yhw-u1/Downloads/DrawingPanel.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
|
@ -0,0 +1 @@
|
|||
/bin/
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>z02</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,14 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=17
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||
org.eclipse.jdt.core.compiler.release=enabled
|
||||
org.eclipse.jdt.core.compiler.source=17
|
|
@ -0,0 +1,79 @@
|
|||
import java.awt.Graphics;
|
||||
|
||||
/** Klasseninvariante: x>=0 und y>=0. */
|
||||
|
||||
public class Loc {
|
||||
private int x;
|
||||
private int y;
|
||||
|
||||
|
||||
/** Initialisiert das Objekt mit gegebenen Koordinatenwerten.
|
||||
* @param initialX Vorbedingung: >= 0
|
||||
* @param initialY Vorbedigung: >= 0.
|
||||
* @exception IllegalArgumentException falls einer der Eingabeparameter ungültig ist.
|
||||
*/
|
||||
public Loc(int initialX, int initialY) {
|
||||
setLocation(initialX, initialY);
|
||||
}
|
||||
|
||||
public Loc() {
|
||||
this(0, 0);
|
||||
}
|
||||
|
||||
public int getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
public int getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
public void draw(Graphics g) {
|
||||
g.fillOval(x, y, 3, 3);
|
||||
//g.drawString("(" + x + ", " + y + ")", x, y);
|
||||
}
|
||||
|
||||
/** Setzt die Koordinaten auf neue Werte.
|
||||
* @param newx Vorbedingung: >= 0
|
||||
* @param newy Vorbedigung: >= 0.
|
||||
* @exception IllegalArgumentException falls einer der Eingabeparameter ungültig ist.
|
||||
*/
|
||||
public void setLocation(int newx, int newy) {
|
||||
if (newx < 0 || newy < 0) {
|
||||
throw new IllegalArgumentException("x und y müssen >= 0 sein");
|
||||
}
|
||||
x = newx;
|
||||
y = newy;
|
||||
}
|
||||
|
||||
public void translate(int dx, int dy) {
|
||||
setLocation(x + dx, y + dy);
|
||||
}
|
||||
|
||||
public double distance(Loc other) {
|
||||
int dx = x - other.x;
|
||||
int dy = y - other.y;
|
||||
return Math.sqrt(dx * dx + dy * dy);
|
||||
}
|
||||
|
||||
public double distanceFromOrigin() {
|
||||
Loc origin = new Loc();
|
||||
return distance(origin);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "(" + x + ", " + y + ")";
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt einen integer zwischen 0 und 8 abhängig vom Winkel des Punktes zur x-Achse zurück
|
||||
*/
|
||||
public int getSector() {
|
||||
double alpha = Math.atan2(this.y, this.x);
|
||||
int sector = (int) Math.floor(alpha / (Math.PI / 2) * 9);
|
||||
if (sector > 8) {
|
||||
return 8;
|
||||
}
|
||||
return sector;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
import com.bjp.*;
|
||||
import java.util.*;
|
||||
import java.awt.*;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
Color[] colors= { Color.RED, Color.BLUE, Color.CYAN, Color.GRAY, Color.GREEN, Color.MAGENTA, Color.ORANGE, Color.BLACK, Color.YELLOW };
|
||||
final int W=400;
|
||||
final int H=300;
|
||||
DrawingPanel pnl= new DrawingPanel(W,H);
|
||||
Graphics g= pnl.getGraphics();
|
||||
final int N= 5000;
|
||||
Random rand= new Random();
|
||||
for (int i=0; i<N; i++) {
|
||||
Loc loc= new Loc(rand.nextInt(W), rand.nextInt(H));
|
||||
int index= loc.getSector();
|
||||
g.setColor(colors[index]);
|
||||
loc.draw(g);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue