Linie skalieren

Schaaaf

Bekanntes Mitglied
Hallo,

ist es möglich mit Java eine drawLine zu skalieren... Also quasi wie ein Koordinatensystem einzuteilen ?!

Vielen Dank schon mal für Hinweise.
 
Inwiefern "skalieren" ?
Die breite kann man mit einem Stroke ändern.
Ansonsten kannst du natürlich ein Koordinatensystem malen, welches sich an die Größe der Grundkomponente anpasst.
 
Skalieren war vielleicht das falsche Wort ... Ich möchte, dass z.B. eine Einteilung von 0 bis 10 vorgenommen wird, so dass ich in Zukunft, z.B. eine neue Linie an der Stelle 4 auf der Linie ansetzen kann.
 
Also ich glaube ich kann dir nicht ganz folgen. Jedoch kannst du doch ohne Probleme die Position auf der Linie speichern und dann diese Stelle anders zeichnen.
 
Wenn ich es richtig verstehe, will TO eine Linie auf der er 10 Punkte ansetzen kann.

Code:
------------------------------------------
0   1   2   3   4   5   6   7   8   9   10
 
Willst du einfach nur nen Raster drüber legen?
Dann schreib dir Methoden wie
Code:
pointToPanelPosition
und
Code:
panelPositionToPoint
.

Wofür brauchst du die Linie denn später?
 
Also, ich versuche es nochmal :
Ich habe eine Strecke (AB), nun habe ich 10 Punkte, die ich gleichmäßig darauf (wie eine Einheitsskala) darauf verteilen muss (nicht unbedingt sichtbar), aber ich muss auf diese zugreifen können, um z.B. die nächste Strecke an Punkt X auf der Strecke AB ansetzen zu können.

Frage : Wie teile ich die Strecke gleichmäßig auf, also wie bekomme ich die Punkt, die auf der Strecke liegen und wie speichere ich diese für spätere Verwendung?
 
Dazu muss ich erstmal die Länge der Strecke haben... Hab das jetzt über Steigungsdreieck und so gemacht oder geht das in java einfacher, wenn ich 2 Punkte gegeben habe, die Länge rauszubekommen?
 
Steigungsdreieck ist vielleicht ein unpassender Begriff, aber...
Java:
float x0 = ...
float y0 = ...
float x1 = ...
float y1 = ...
float dx = x1-x0;
float dy = y1-y0;
double distance = Math.hypot(dx,dy);
sofern es keine "Point"-Klasse gibt, mit sowas wie
double distance = a.distance(b);
 

Neue Themen


Zurück
Oben