Menge von Punkten für Linienzeichnung

Hallo,
beschäftige mich gerade mit Java und Computergrafik.
Problem:
Ich habe gerade Schwierigkeiten eine Linie mit der Liniengleichung y = m*x + n aus Punktdarstellungen zu programmieren. (also mit g.drawOval)

Im Hauptprogramm lege ich also die zwei Endpunkte p0 und p1 mit Koordinaten fest und dann sollen eben dazwischen die Punkte mit der Formel gerendert werden.

So siehst in der Hauptklasse aus:

setSize(100,100); setVisible(true); setResizable(false);
addWindowListener( new WindowAdapter() {public void windowClosing ( WindowEvent e ){ System.exit(0); } } );
new primLinie(pkt0, pkt1);

Ok jetzt wird also das Objekt der Klasse PrimLinie erstellt. Da sieht es momentan so bei mir aus:

class primLinie extends Panel {
double m, n, xmin, xmax, ymin, ymax;

public primLinie(Point p0, Point p1){
double angle;
angle= Math.atan2( (p1.getY() - p0.getY()), (p1.getX() - p1.getX()) );
m= Math.tan(angle); // m = tan(Schnittwinkel)
n= p1.getY() - m * p1.getX();
xmax= Math.max( p0.getX(), p1.getX() ); xmin= Math.min( p0.getX(), p1.getX() );
ymax= Math.max( p0.getY(), p1.getY() ); ymin= Math.min( p0.getY(), p1.getY() );
}
public void paint(Graphics g){
if ((xmin - xmax) == 0)
for (int i= (int) ymin; i

Moien

Ich habe gerade Schwierigkeiten eine Linie mit der
Liniengleichung y = m*x + n aus Punktdarstellungen zu
programmieren. (also mit g.drawOval)

drawLine … ?

Weiss nun nicht, wo der Fehler sich befindet.

Du unterscheidst die Fälle „unendliche Steigung“ und Rest. Unterschiede lieber zwischen Steigungen > abs(45°) und

Hallo,
ja also eben eine Linie aus kleinen Punkten zusammengestellt. Es soll das Prinzip der Linienrasterung verstanden werden.

Ok das ist doch schon einmal ein Hinweis. Ich habe vor dem Erstellen des Beitrages auch mal die Bedingungsanweisungen vollständig auskommentiert und bin auf keine Ergebnisse gekommen.(sprich: er solle die Linie direkt über die Geradengleichung zeichnen)

Ich bin mir doch zugegebenermaßen recht unsicher, ob ich nicht sonstige Implementationsfehler im Programm habe. Hast du da eine Einschätzung?

Tschau

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Nun, ich habe noch einmal versucht, wirklich nur mal ein Punkt mit drawOval über diesen Syntax zu zeichnen und es funktionierte nicht.
Daher gehe ich mal von einem Fehler im Programm selber aus, weniger von der Idee dahinter.
Also wo könnte sich der Fehler in der Code-Umsetzung befinden?
Tschau

Moien

ja also eben eine Linie aus kleinen Punkten zusammengestellt.
Es soll das Prinzip der Linienrasterung verstanden werden.

http://de.wikipedia.org/wiki/Rastern_von_Linien … Vorallem der Teil „Verallgemeinerung auf beliebige Richtungen“

Ich bin mir doch zugegebenermaßen recht unsicher, ob ich nicht
sonstige Implementationsfehler im Programm habe. Hast du da
eine Einschätzung?

Das ist garantiert falsch und müsste der Compiler laut schreihen:

for (int i= (int)xmin; i

Hallo,
bin fast sicher, dass ich jetzt die Ursache gefunden habe.
Weisst du, wie man die Titelleiste für das Fenster in awt deaktiviert?
Da unter könnte das Resultat liegen.

Tschau

Moien

bin fast sicher, dass ich jetzt die Ursache gefunden habe.
Weisst du, wie man die Titelleiste für das Fenster in awt
deaktiviert?
Da unter könnte das Resultat liegen.

Urgh. Du hast die Hauptklasse von Window/Frame abgeleitet? Wechsel auf Canvas. Das ist für genau solche Aufgaben gedacht.

cu