AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Linie um bestimmten Winkel drehen
Thema durchsuchen
Ansicht
Themen-Optionen

Linie um bestimmten Winkel drehen

Ein Thema von milos · begonnen am 29. Apr 2014 · letzter Beitrag vom 30. Apr 2014
Antwort Antwort
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
508 Beiträge
 
Delphi 11 Alexandria
 
#1

Linie um bestimmten Winkel drehen

  Alt 29. Apr 2014, 21:10
Hallo,

ich würde gerne eine Line drehen können und deren Start und Endkoordinaten ausrechnen können.

Kann mir einer dazu einen Tipp gegebn?

MfG
Miniaturansicht angehängter Grafiken
bild.png  
Milos
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#2

AW: Linie um bestimmten Winkel drehen

  Alt 29. Apr 2014, 21:30
Tipp: Sinus und Cosinus?


Aber welches X:Y suchst du denn jeweils?
Die Zeichnung wiederspricht etwas deiner Beschreibung.

- Die alten Endpunkte nach der Dreheung?
- Die Schnittpunkte der Linie mit dem Rand, nach der Drehung?

1. Du hast den Punkt, um welchen gedreht werden soll.
Damit berechnest du den Winkel und die Endfernung zu den Endpunkten,
dann kannst du den Drehwinkel dazurechnen
und über den neuen Winkel mit Entfernung die neuen Endpunkte berechnen

2. Du hast die Endpunkt, die Drehachse (den Schnittpunkt, um welchen gedreht wird).
Neuen Drehwinkel dazuaddieren und die Schnittpunkte mit den Linien der Rahmen berechnen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (30. Apr 2014 um 00:49 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Linie um bestimmten Winkel drehen

  Alt 30. Apr 2014, 00:36
Betrachten wir deine Zeichnung, machen zwei Dreiecke draus und nehmen den Schnittpunkt als Winkel Alpha an. Nehmen wir an der Winkel wind nicht größer 90°. Die halbe alte Linie ist (noch) die Ankathete (b), die neue Linie (genauso lang wie b am Anfang) wäre dann die Hypotenuse (c). Dreieck ist dann rechtwinkelig, gesucht (neue) a und b. Bekannt sind alle Winkel, also Alpha, Gamma (90°)und Beta (180 - Alpha und Beta).
Code:
a / sin(alpha) = b / sin(beta) = c / (gamma)

a := (c * sin(alpha)) / sin(gamma)
b := (c * sin(beta)) / sin(gamma)
Code:
x2 = x1 - a
y2 = y1 + b
a und b gelten dann auch für die untere Linie und die dortigen x2 und y2.

Ist der Winkel größer 90°, einfach von 180° abziehen, nur zu y1 eine halbe Länge dazu zählen.

Ok, vermutlich geht das einfacher, ist auch schon lange her wo ich das in der Schule hatte. Ich denke mir man kann die Position auch mit Sin und Cos zusammen berechnen (ist ja letztendlich ein Kreis). Ist aber schon zu spät für kompliziertes Denken.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Linie um bestimmten Winkel drehen

  Alt 30. Apr 2014, 10:53
Ja. Geht einfacher. Man transformiert die Punkte P1 und P2 in den Drehpunkt. Danach mit (cos/sin, -sin/cos) rotieren und anschließend wieder ins ursprüngliche KOO-System zurück transformieren. Die drei Schritte kann man auch in einer einzigen Formel zusammenfassen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.
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