Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
mobilepcklinik
Anmeldungsdatum: 24.02.2012 Beiträge: 1
|
Verfasst am: 24.02.2012, 18:25 Titel: Abfrage ob Maus auf runden Button geklickt wurde |
|
|
Ich habe einen runden Button und möchte möglichst resourcensparend errechnen, ob die Maus innerhalb des Kreises geklickt wurde. Leider hab ich momentan überhaupt keinen Lösungsansatz, außer alle Punkte innerhalb des Kreises durchzu probieren. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 24.02.2012, 19:05 Titel: |
|
|
Code: | GETMOUSES mausX, mausY, , button
IF (mausX-kreismittelpunktX)^2 +(mausY-kreismittelpunktY)^2 < kreisRadius^2 THEN ... |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 24.02.2012, 21:32 Titel: |
|
|
Noch schneller: "^" ebenfalls eliminieren und besser
Code: | dx = x - mittex
dy = y - mittey
IF dx * dx + dy * dy < r * r THEN ... |
da die Potenz häufig intern als
Code: | EXP(LOG(basis) * exponent) |
(ziemlich "teure" Operationen über den Mathematik-Coprozessor, selbst bei reinen Ganzzahlen!) implementiert ist (zumindest ältere BASIC-Dialekte machen es praktisch immer so).
Bei FB könnte man jetzt einen Blick in den Quellcode des Compilers werfen, wie die Übersetzung von "^" implementiert ist, wäre an dieser Stelle einmal noch interessant zu wissen, wie weit der Compiler den Code optimiert. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 24.02.2012, 21:41 Titel: |
|
|
Dieser Kommentar aus dem Compilercode dürfte diese Frage beantworten:
Code: | '' convert var ^ 2 to var * var |
|
|
Nach oben |
|
 |
|