supernicky
Goto Top

Programmausführung nur bei Radien über 50 möglich (Kreisbewegung)

Hallo,

ich habe ein Programm geschrieben bei dem man einen Punkt wahllos auf der Form platzieren kann.
Bei jedem Klick wird dieser Punkt genau ein Grad weiter verschoben. Da ich nicht mit vorberechneteten Zahlen arbeiten will habe ich folgendes ersonnen.

Im Klick-Ereignis der Form:

Auslesen der X und Y Position des Punktes.
Entfernung zum Mittelpunkt ermitteln und den dazu gehörigen Winkel (siehe mein langer Thread vorher!!!!!!)
Winkel + 1
Alten Punkt löschen und neuen zeichnen (per GDI)
Neue Koordinaten des Punktes speichern

Das ganze klappt wirklich gut, aber leider habe ich das Problem sobald der Radius 50 oder kleiner ist, nach ein paar "Bewegungen" sich nichts mehr tut auf dem Schirm.
Bei Radien ab 51 und größer läuft alles fehlerfrei.

Ich lasse mir in einer Textbox einzelne berechnete Werte anzeigen und kann dort keinen Fehler entdecken. Er hört halt einfach auf.

Zum Programm:
Alle Variablen sind 32bit Werte. (DWORD)
Alle Berechnungen werden komplett mit der FPU berechnet.
Rückgabe der berechneten Werte erfolgt als Integer (Ganzzahl)

Falls jemand eine Idee haben könnte woran es liegt währe ich wie immer sehr dankbar.

MfG

Nicky

Content-ID: 171224

Url: https://administrator.de/contentid/171224

Printed on: October 4, 2024 at 05:10 o'clock

supernicky
supernicky Aug 10, 2011 at 03:39:09 (UTC)
Goto Top
Ich glaube ich habe die Lösung gefunden...

Wenn der Punkt auf der selben X oder Y Achse ist wie der Mittelpunkt ist eine Seite des Dreiecks = 0.
Durch eine IF Abfrage habe ich bei 0 den Wert auf 0,3 geändert... Am Ergebnis ändert das nichts aber es ist immer eine Zahl größer Null.

Komisch ist das der Fehler nur bei den Radien kleiner 51 Pixel vorkommt...

Nun läuft alles rund...

Nicky