Autor |
Beitrag |
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Fr 30.03.07 12:57
Hi,
ich habe ein Bitmap. Dort nehme ich mir 2 Punkte und möchte die Mittelsenkrechte darauf zeichen.
Den Mittelpunkt und die Steigung kann ich berechnen, aber wie berechne ich 10 Punkt hoch und runter von der Geraden? Irgendwo hackts da noch bei mir.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 30.03.07 13:09
P sei der Ausgangspunkt (TPoint: x,y:integer )
und m die Steigung (integer)
Delphi-Quelltext 1: 2:
| Canvas.MoveTo(P.x, P.y); Canvas.LineTo(P.x + 10, P.y + m * 10); |
Alle Angaben in Pixel.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Zuletzt bearbeitet von JayEff am Fr 30.03.07 13:19, insgesamt 1-mal bearbeitet
|
|
Horst_H
      
Beiträge: 1654
Erhaltene Danke: 244
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Fr 30.03.07 13:17
Hallo,
die Mittelsenkrechte hat die Steigung 1/m (==cotan) (m(==tan) natürlich <> 0 )
Gruss Horst
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 30.03.07 13:18
ene hat folgendes geschrieben: | Den Mittelpunkt und die Steigung kann ich berechnen, [...] |

_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
ene 
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Fr 30.03.07 14:28
@JayEff Klappt, gibt es eine Möglichkeit für LineTo eine andere Farbe zu nehmen? Denn Schwarz auf Schwarz erkennt man nicht gut. Ansonsten muss ich mein Bitmap ändern, was auch kein Problem ist.
@Horst_H s:= (P2y-P1y)/(P2x-P1x); alpha:= tan(s); und mMitte:= alpha+Pi/2; geht auch 
|
|
Philipp_Reitter
      
Beiträge: 430
|
Verfasst: Fr 30.03.07 14:31
Delphi-Quelltext 1:
| image1.Canvas.Color.brush.color:=clRed |
da kann man auch die dicke des striches ändern
|
|
ene 
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Fr 30.03.07 14:41
Tausche Brush durch Pen und schon läufts, vielen Dank!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 30.03.07 14:44
Wieder mal der Vollständigkeit halber: Du kannst statt den Konstanten (clRed etc.) auch per RGB(Rot, Gruen, Blau); eine Farbe mischen. Hierbei sind Rot, Gruen und Blau jeweils byte-Werte, also zwischen 0 und 255. 255,255,255 ist weiß, 0,0,0 ist schwarz, wie auch im HTML. (Additive Farbmischung, oder?  verwechsle das immer...)
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
ene 
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Fr 30.03.07 14:47
Vielen Dank der Vollständigkeit halber. Um dich dann zu necken, sei noch erwähnt, dass man für RGB die Unit Windows braucht  *duck&lauf*
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 30.03.07 14:49
ene hat folgendes geschrieben: | Um dich dann zu necken, sei noch erwähnt, dass man für RGB die Unit Windows braucht |
...die meistens sowieso schon im Projekt eingebunden ist. *Hat das letzte Wort* 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
ene 
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Fr 30.03.07 14:56
Aber nicht, wenn man in einer separaten Unit arbeitet und erst recht nicht, wenn man in einer Konsolenanwendung arbeitet. *Over&Out* 
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Fr 30.03.07 17:23
Zuletzt bearbeitet von delfiphan am Fr 30.03.07 17:35, insgesamt 1-mal bearbeitet
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 30.03.07 17:34
Yup, die linie ist in den meisten Fällen länger als 10 px. Aber ich hatte auch garnicht den Anspruch, sie 10 Pixel lang zu machen, das hatte ich falsch verstanden 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
ene 
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Mo 02.04.07 08:02
Die 10 Pixel waren erst mal nur zum Schauen, ob es in die richtige Richtung geht. Die Länge muss ich rekursiv ermitteln, da sie unterschiedlich ist. Ich arbeite dann mit einem Floodfill.
|
|