Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Abfrage ob Maus auf runden Button geklickt wurde

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mobilepcklinik



Anmeldungsdatum: 24.02.2012
Beiträge: 1

BeitragVerfasst am: 24.02.2012, 18:25    Titel: Abfrage ob Maus auf runden Button geklickt wurde Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 24.02.2012, 19:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 24.02.2012, 21:32    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 24.02.2012, 21:41    Titel: Antworten mit Zitat

Dieser Kommentar aus dem Compilercode dürfte diese Frage beantworten:
Code:
'' convert var ^ 2 to var * var
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz