Formelhilfe....

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Formelhilfe....

Beitrag von Bisonte »

Folgendes Problem habe ich mit meiner Mathematik-Insuffizienz:

Ich habe eine "Kanone" in am unteren Rand(in der Mitte) eines Screens sagen wir von ScreenX=1024,ScreenY=768...

Nun möchte ich das diese Kanone mit Rotatesprite() immer zum Mauszeiger zeigt....

Wie kann ich jetzt den Winkel aus den x und y koordinaten rausdengeln ?

Das wär mal was für unsere Mathegenies ;) ....
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

Ist zwar kein TopCode und mit Prozent erreichnet. (müsst man meines Wissen nach mit cos() und tan() machen), funktioniert aber recht gut. Einfach LookTo(KannoneX,MouseX(),KannoneY,MouseY()) aufrufen und du hast den rotationswert.

Code: Alles auswählen

Procedure.f pMoveTo(X1,X2,Y1,Y2)
a=Sqr(Pow(X1-X2,2))

b=Sqr(Pow(Y1-Y2,2))
Xp.f=b/(a+b)
If (Y1-Y2)>0
Xp*-1
EndIf

ProcedureReturn Xp
EndProcedure

Procedure.f Lookto(X1,X2,Y1,Y2)
xp.f=pMoveto(X1,X2,Y1,Y2)
rotate.f
Grad.f
If xp>0
Grad=90*(xp*-1)
  If X2-X1>0
  rotate=90-Grad
  Else
  rotate=270+Grad;270+Grad
  EndIf
Else
Grad=90*xp
  If X2-X1>0
  rotate=90+Grad ;90+Grad
  Else
  rotate=270-Grad
  EndIf
EndIf
ProcedureReturn rotate
EndProcedure
Zuletzt geändert von kswb73 am 22.08.2008 19:38, insgesamt 1-mal geändert.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Little John

Re: Formelhilfe....

Beitrag von Little John »

Bisonte hat geschrieben:Das wär mal was für unsere Mathegenies ;) ....
Das ist ein Fall für Kommissar mArkus Tangens, von seinen Kollegen freundschaftlich "ATan" genannt. ;)

Gruß, Little John
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

schau mal ins CodeArchiv, da ist schon lange so ein Code "bot folgt Maus" oder so drin...
und im Forum gibt es auch zig versionen davon.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

Jupp... Das klappt ja wunderbar ;)

Sorry aber mit dem ATan Kollegen kann ich als MatheDepp nicht wirklich was anfangen.... Leider.

Nachdem ich das geschrieben hatte, fiel mir auch siedendheiss Cos und Konsorten ein, aber alles was ich in der Hilfe fand, war im Bogenmass angeben... toll und da stand ich wie Ochs vor Kuckucksuhr...

Ich glaub ich brauch mal nen Mathe-Auffrischungskurs ;)

Edit: und nun seht euch mal die Seite an .... http://de.wikipedia.org/wiki/Sinus
besonders den unteren teil... da krieg ich Blasen im schaedel ;)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, mal auf die schnelle... (weil mir grad irgendwie so ist)


Bogenlänge nennt man die Länge eines Kreisbogens bei einem Kreis mit dem Radius 1.
einmal ganz herum (360°) ist eine Bogenlänge von 2pi (6,2831853...)

einen Winkel kann man also in Grad messen, oder in der Länge ihres (Einheits)Bogens,
dann ist er im Bogenmaß notiert.

also, wenn du einen Winkel hast, dessen Bogen ein halbes pi mißt, dann hat er 90°

du kannst die Winkelgröße ganz einfach von Gradmaß in Bogenmaß umrechnen,
indem du die Gradzahl mit (#PI/180) multiplizierst.

...das soweit einleuchtend? ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Kaeru Gaman hat geschrieben:schau mal ins CodeArchiv, da ist schon lange so ein Code "bot folgt Maus" oder so drin...
und im Forum gibt es auch zig versionen davon.
Beispiel von mir :
Hier klicken
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten