![]() |
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 |
Re: Linie 90° zu schräger Linie
Das Stichwort ist: Vektoren
|
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. |
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). |
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) |
Re: Linie 90° zu schräger Linie
Hallo,
danke für die Antworten. Meint ihr ![]() Nur leider verstehe ich nicht was Y oder X ist bei Zitat:
Das rückwärts Rechnen verstehe ich auch nicht? Ist der Radius bei
Delphi-Quellcode:
die Entfernung zu meinem Startpunkt? Und was ist dann bitte Schön der Mittelpunkt??? Ich blicke da net durch??? :wall: :gruebel:
y:=Mittelpunkt-sin(AktWinkel)*Radius;
x:=Mittelpunkt+cos(AktWinkel)*Radius; Vielleicht kann es jemand mir erklären?!? :pale: |
Re: Linie 90° zu schräger Linie
keiner eine Idee?
|
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?) :-) |
Re: Linie 90° zu schräger Linie
also ich habe jetzt eine nicht so elegante Lösung genommen:
Delphi-Quellcode:
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?
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); |
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 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz