Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Linie 90° zu schräger Linie (https://www.delphipraxis.net/147666-linie-90%B0-zu-schraeger-linie.html)

MiniMax 13. Feb 2010 16:22


Linie 90° zu schräger Linie
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,
ich habe schon wieder eine Frage:

ich muss zu einer Schrägen linie, die mit LineTo erstellt wurde eine 90° versetzte Linie Zeichnen, die Vom Mittelpunkt aus 20 Pixel nach links geht, und auf der Ersten Linie anfängt. Geht dass überhaupt?
Falls Fragen sind, einfach Stellen! Ich hoffe ihr könnt mir Helfen?!?
Vielen Dank im Vorraus

freak4fun 13. Feb 2010 16:54

Re: Linie 90° zu schräger Linie
 
Das Stichwort ist: Vektoren

himitsu 13. Feb 2010 17:17

Re: Linie 90° zu schräger Linie
 
Du errechnest die den Winkel der ersten Linie über die Koordinaten der Endpunkte und je einer senkrechten und wagerechten Linie durch diese Punkte, erhälst du ja ein rechtwinkliges Dreieck.
> die zugehörigen Winkelgesetze kennst du ja bestimmt

dann nur noch 90° zu diesem Winkel dazurechnen
und alles rückwärts gerechnet erhält man die neue Linie.

Noedel 13. Feb 2010 18:18

Re: Linie 90° zu schräger Linie
 
noch ein Tipp:
Die Steigung einer Gerade g ist m.
Die Steigung der Orthogonalen O ist -(1/m).

Medium 13. Feb 2010 19:50

Re: Linie 90° zu schräger Linie
 
Einen Normalenvektor im R² bilden ist WEIT einfacher als da jetzt mit Trigonometrie oder Steigungsgelümmel um sich zu werfen...

A, B := Punkte auf deiner Strecke

V := B-A

Nv := (Vy, -Vx) falls Vx <> 0, sonst
Nv := (-Vy, Vx)

MiniMax 14. Feb 2010 13:05

Re: Linie 90° zu schräger Linie
 
Hallo,
danke für die Antworten. Meint ihr www.gymnasium-eisenstadt.at/Fach/informatik/downloads/delphi/winkelfunktionen.doc+Delphi+90%C2%B0+Winkel+zu+Lin ie&cd=1&hl=de&ct=clnk&gl=de]das hier[/url]? :gruebel:

Nur leider verstehe ich nicht was Y oder X ist bei
Zitat:

AktTan:=y/x;
:wall:
Das rückwärts Rechnen verstehe ich auch nicht? Ist der Radius bei
Delphi-Quellcode:
y:=Mittelpunkt-sin(AktWinkel)*Radius;
x:=Mittelpunkt+cos(AktWinkel)*Radius;
die Entfernung zu meinem Startpunkt? Und was ist dann bitte Schön der Mittelpunkt??? Ich blicke da net durch??? :wall: :gruebel:
Vielleicht kann es jemand mir erklären?!? :pale:

MiniMax 14. Feb 2010 15:53

Re: Linie 90° zu schräger Linie
 
keiner eine Idee?

jfheins 14. Feb 2010 16:01

Re: Linie 90° zu schräger Linie
 
1. Pushen (also einen kleinen Beitrag schreiben, damit das Thema wieder oben auf der Portalseite landet) ist erst ab 24h gestattet ;)

2.: Ich vermisse einige Informationen um dir zu helfen. Du möchtest eine Linie, die im 90° Winkel zu einer anderen Linie ist - male einfach einen senkrechten und einen waagerechten Strich ;)
Alternativ: Sage uns, was du bereits zeichnest (ist das ein Kreissegment oder eine gerade Linie? Was weist du über die Linie?) und ein paar Sachen über den Strich (wo soll der hin? Wie lang soll der sein? In welche Richtung soll der gehen?) :-)

MiniMax 15. Feb 2010 16:15

Re: Linie 90° zu schräger Linie
 
also ich habe jetzt eine nicht so elegante Lösung genommen:

Delphi-Quellcode:
with Form1.Horizont.canvas do begin
  begin
  brush.color:=$00004080;
  pen.color:=$00004080;
  MoveTo(0,Form1.Horizont.height);
  LineTo(Form1.Horizont.width,Form1.Horizont.height);

  Radius:= Form1.Horizont.width;
  Winkel:= DegToRad(Wert1111);
  yyy:=(Form1.Horizont.height div 2) - sin(Winkel)* Radius;
  xxx:=(Form1.Horizont.width div 2) + cos(Winkel)* Radius;
  MoveTo(Round(XXX),Round(YYY));
  LineTo((Form1.Horizont.width div 2),(Form1.Horizont.width div 2));
  yyy:=(Form1.Horizont.height div 2) - sin(Winkel-degtorad(180))* Radius;
  xxx:=(Form1.Horizont.width div 2) + cos(Winkel-degtorad(180))* Radius;
  LineTo(Round(XXX),Round(YYY));
  FloodFill(5,440,$00004080,fsborder);

  Pen.color:= clblue;
  brush.color:= clblue;
  Radius:= Form1.Horizont.width;
  Winkel:= DegToRad(Wert1111);
  yyy:=(Form1.Horizont.height div 2) - sin(Winkel)* Radius;
  xxx:=(Form1.Horizont.width div 2) + cos(Winkel)* Radius;
  MoveTo(Round(XXX),Round(YYY));
  LineTo((Form1.Horizont.width div 2),(Form1.Horizont.width div 2));
  yyy:=(Form1.Horizont.height div 2) - sin(Winkel-degtorad(180))* Radius;
  xxx:=(Form1.Horizont.width div 2) + cos(Winkel-degtorad(180))* Radius;
  LineTo(Round(XXX),Round(YYY));
  FloodFill(0,0,clblue,fsBorder);
Nur das Floodfill funktioniert net so wie es soll --> Wenn ich einen Winkel = 45° einegbe ist eine Hälfte Braun und die Andere weiß und bei > 45° wird die Braune Hälfte blau - ich weis nicht was los ist ?? :wall: :wall: Könnt ihr mir einen Tipp geben?

Medium 15. Feb 2010 17:01

Re: Linie 90° zu schräger Linie
 
Schau dir die Parameter von FloodFill() nochmal genauer an, und dann überleg, was passiert wenn sich deine Trennlinie dreht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz