Home
/
JavaForum
/
Java allgemein
Infos
|
Features
|
Gold-Edition
|
Kundenservice
java
Übersicht
Forum
-
Beginner
-
Java allgemein
-
JDBC
-
JNI
-
Networking
-
Online-Ressourcen
-
Swing + AWT
-
XML
-
Meckerecke
Mitglieder
LOGIN
User oder E-Mail
Passwort
·
Passwort vergessen
·
Kostenlos anmelden
Information
Demo
Features
Im Vergleich
Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
Kundenservice
Impressum
Datenschutz
AGB
Status
4.258 User online
1 User eingeloggt
Beiträge
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
Antworten
Neuer Beitrag
Gesamtdarstellung
Detaildarstellung
Einzeldarstellung
Threaddarstellung
Beitrag 731 von 2212 (33%)
Autor
DeaconFrost
Datum
10.10.05, 14:04
Betreff
Re: MemoryImageSource und das Zeichnen einer Linie
In diesem Fall musst du IMHO mathematisch berechnen welche Punkte auf der Linie liegen. Das ganze ist also nicht so trivial (vor allem bei schrägen Linien).
Mittels Vektoren sähe das Ganze dann so aus:
p = (startX; startY) + k * (startX - endX; startY - endY)
Um die Punkte einer Linie zwischen Start- und Endpunkt zu erhalten, muss nun k zwischen 0 und 1 (inklusive) iteriert werden. Am schnellsten wird das gehen, wenn du das in 2 Gleichungen umformst:
p.x = startX + k * (startX - endX)
p.y = startY + k * (startY - endY)
Dann setzt du z.B. p.x auf einen festen Wert, rechnest k aus und benutzt dies dann, um das entsprechende p.y für diese x-Koordinate zu berechnen.
Wenn du entlang aller möglichen x iterierst (k muss zwischen 0 und 1 sein), erhältst du dann die dazugehörigen y-Koordinaten.
Allerdings gibt's noch den Spezialfall, dass die Linie auf der X-Koordinate liegt. startX - endX ist dann 0 (Null). Dann musst du dir noch etwas Anderes einfallen lassen.
Zudem gibt's noch das Problem, dass die Pixel recht grob sind, d.h. bei ganz leicht schrägen Linien (geringer Winkel). Hier ist startX - endX dann nahe 0 (Null). Hier müsstest du dann gleich mehrere Bildpunkte für eine x-Koordinate "einschalten", damit die Linie nicht unterbrochen wird.
Ich hoffe, ich konnte das einigermassen erklären... :-)
Diskussionsverlauf:
MemoryImageSource und das Zeichnen einer Linie
Re: MemoryImageSource und das Zeichnen einer Linie
Auf diesen Beitrag antworten
Neuen Beitrag verfassen
Impressum
·
Datenschutz
·
AGB
·
Infos
·
Presse
Ein modernes Forum:
teamturn.com