![]() |
Kreis Winkelberechnung
Guten Abend zusammen.
Ich möchte gerne folgendes machen: Man soll an einem Kreis eine beliebe Stelle anklicken können und bekommt dann den jeweiligen Winkel angezeigt (0° ist dann der oberste Punkt des Kreises). Ich habe leider nach einer etwas kleineren Pause keine eine tolle Idee, wie man dies realisieren könnte. Wäre über jede Hilfe dankbar :) Liebe Grüße, Poring |
Re: Kreis Winkelberechnung
sinus : gegenkathete / hypothenuse
cosinus: ankathete / hypothenuse sinus(winkel) = y / radius cosinus(winkel) = x / radius Einfach umformen ... :P |
Re: Kreis Winkelberechnung
Danke schonmal :)
Sowas ähnliches hatte ich zum sinus auch noch in Erinnerung :) Allerdings habe ich eher das Problem: Wie mache ich ein Kreis, an dem man nur die Stellen anklicken kann wo der Kreis gezeichnet ist, und er dann den Winkel bestimmt |
Re: Kreis Winkelberechnung
entweder du zeichnest sie per hand
indem du folgende gleichung verwendest: k: (x-mx)²+(y-my)²=r² oder du machst es mit der Canvas funktion Ellipse ! Anschließend ermittelst du nach einem klick P(x,y) den P' auf dem Kreis ! wenn du das hast musst du nur noch mehr den Winkel ausrechnen :P |
Re: Kreis Winkelberechnung
Nur wie ermittel ich bei dem Image Canvas den klick Punkt?
Der kann ja auch außerhalb des Kreises liegen. |
Re: Kreis Winkelberechnung
Liste der Anhänge anzeigen (Anzahl: 1)
Hier, da mir fad war und ich nichts besseres zu tun hatte :P
MfG |
Re: Kreis Winkelberechnung
Das macht doch nichts, ob der Punkt innerhalb oder außerhalb des Kreises liegt.
|
Re: Kreis Winkelberechnung
Das ist ja genau das, was ich mir vorgestellt hatte :thumb:
Du hast die Funktion ja ins FormMouseover und ins Form zeichnen lassen. Worein kann ich des in einen bestimmen Bereich zeichnen lassen? Zb in ein 4Eck mit Radius+1 Länger zb? Weil will ja in der Form noch was andres reinpacken :) |
Re: Kreis Winkelberechnung
Ja, der Radius ist völlig egal.
Es gibt einen Mittelpunkt M und den angeklickten Punkt P. Jetzt berechnet man einen Vektor von M bis zu P. Dann muss man diesen ![]() Mit der angesprochenen Funktion ArcTan2() wird das Berechnen des Winkels zum Kinderspiel. |
Re: Kreis Winkelberechnung
Das hat er ja netterweise schon mal alles vorgeschrieben.
Nur kann ich auch auf der Form 500px weiter rechts klicken und der Winkel wird berechnet zum Kreis. Möchte den Wirkungsbereich ja nur möglichst am Kreis haben. Nur wenn mans ins Image schreibt, hat man gleich nen weißen HG mit dabei. |
Re: Kreis Winkelberechnung
Möchte den Wirkungsbereich ja nur möglichst am Kreis haben.
- Es ist eh am Kreis: Spiel mal ein wenig mit dem M-Vektor ! Setz auf M = Point( 500, 50 ) und umschreibe die Ellipse zu Rectangle ! Ansonsten versteh ich ned ganz dein Problem ... :S MfG |
Re: Kreis Winkelberechnung
Liste der Anhänge anzeigen (Anzahl: 1)
Da es im
Delphi-Quellcode:
steht, kann ich überall auf der Form hinklicken und es wird berechnet. Allerdings sollen dort ja noch andere Dinge hin, deswegen möchte ich das nur der Winkel berechnet wird wenn man auch etwa in kurzer Entfernung zum Kreis irgendwo hinklickt.
TForm1.FormPaint
Besser verständlich? Siehe Bild: Nur im roten Bereich soll gerechnet werden |
Re: Kreis Winkelberechnung
Berechne im OnMouseDown (ich schätze mal da wird gerechnet) mittels dem Satz des Pythagoras den Abstand vom angeklickten Punkt zum Mittelpunkt: Distanz = Wurzel((xMitte - X)² + (yMitte - Y)²) und rechne nur wenn die Distanz für dich klein genug ist,. Oder, wenn du es in einem Rechteck haben willst, hilft dir die Funktion
![]() |
Re: Kreis Winkelberechnung
Nein nein Robby.. Geht viel einfacher: ;)
Nimm einfach den Betrag von MP ( MP = Mittelpunk des Kreises bis Punkt ) MP := P - M Länge MP = SQRT(MP.X*MP.X + MP.Y*MP.Y) wenn Länge <= Radius dann im Kreis !! MfG |
Re: Kreis Winkelberechnung
Er berechnet so oder so immer nur vom MP bis zum Kreis.
Ich will nur, das ich auserhalb des roten Kästchen klicken kann, ohne das er irgendwas berechnet, zeichnet, oder ähnliches. Sondern das alles nur macht wenn man innerhalb des roten Kästchen drückt? |
Re: Kreis Winkelberechnung
Zitat:
Delphi-Quellcode:
Musst du natürlich auf dein Programm zuschneiden.
var
Rec: TRect; RecWidth, RecHeight: Integer; begin RecWidth := Radius + 10; RecHeight := Radius + 10; Rec.Left := Mitte.X - RecWidth; Rec.Right := Mitte.X + RecWidth; Rec.Top := Mitte.Y - RecHeight; Rec.Bottom := Mitte.Y + RecHeight; if PtInRect(Rec, Point(X, Y)) then Rechnen(); end; Zitat:
|
Re: Kreis Winkelberechnung
Geht! :)
Vielen lieben Dank! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 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