![]() |
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 13:46 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