Français
Source/ Codesnippets

ArcTan2, atan2 "In direction schauen" (+Icônes comme OpenGL Texturen)

 

Sven
Bader
allô!

Eigentlich une Basisfunktion dans qui Spieleentwicklung: ArcTan2 bzw atan2 (php/js). Hiermit peut sich qui Winkel entre deux Punkten, ermitteln um so z.B. une Gegner dans direction Spieler regarder ou bien courir trop laisser.

j'ai mich quelque chose gewundert, dass je aucun Entsprechung dans Profan trouvé habe, peut-être. habe je es seulement übersehen?

c'est letztendlich qui ArcTan Funktion avec einer Quadranten-Abfrage.
Es serait mich freuen, si le Funktion den Weg dans Profan ou bien qui math.inc trouver serait.

dans einer zweiten Funktion, je nenne vous Arctan4, nehme je aussi encore qui Berechnung qui Vektoren et qui Umwandlung de Bogenmaß dans Grad ab.

comme Abfallprodukt hat qui Code encore Profan-Icônes comme OpenGL Textur.

Herunterladen


Windowtitle "ArcTan2, ArcTan4 et Icon Texturen"
style de fenêtre 1+4+8+16
window (%maxx * 0.5 - 200), (%maxy * 0.5 - 150)  - 400,300'kompatible schreibweise
Déclarer tex&, hPic&, zrot!, oglX&, oglY&
oGL("init",%hWnd,1,1,1,0)
oGL("posmode",1)
'Texture aus Icônes
Mcls 32,32
startpaint -1
DrawIcon "GESICHT", 0,0
endpaint
hPic&=create(«PCSI»,0,"& MEMBMP")
tex&=ogl("getTextureBmp",hPic&,1)
DeleteObject hPic&
'aus math.inc

Proc roue2Deg

    Paramètres Angle!
    Retour (180 / Pi()) * Angle!

ENDPROC

Proc ArcTan2

    'Winkel aus Position Bilden
    'si objet 1 trop objet 2 regarder soll, ist qui Winkel hierfür:
    'ArcTan2(x1 - x2, y1 - y2)
    'Um cela Bogenmaß dans Grad umzuwandeln peux ArcTan2 verwendet volonté
    Paramètres x!, y!
    Déclarer result!

    si (y! > 0.0)

        result! = ArcTan(x!/y!)

    elseif (y! < 0.0) & (x! >= 0.0)

        result! = ArcTan(x!/y!) + Pi()

    elseif (y! < 0.0) & (x! < 0.0)

        result! = ArcTan(x!/y!) - Pi()

    elseif (y! = 0.0) & (x! > 0.0)

        result! = Pi() / 2.0

    elseif (y! = 0.0) & (x! < 0.0)

        result! = 0.0 - (Pi() / 2.0 )

    elseif (y! = 0.0) & (x! = 0.0)

        'ne...aucune la distance, aucun direction, peux chez besoin abgefangen volonté
        result! = -1000

    endif

    Retour result!

ENDPROC

Proc ArcTan4

    'ArcTan4: une Neuschöpfung -) alles dans einem inclusivement Performance Tweaks
    'qui Vektoren doit pas selbst berechnet volonté, es volonté
    'simple seulement deux Punkte transfert, cela Ergebnis ist bereits dans Grad
    Paramètres x1!, y1!, x2!, y2!
    Déclarer result!, x!, y!
    x! = x1! - x2!
    y! = y1! - y2!

    si (y! > 0.0)

        result! = ArcTan(x!/y!) * 57.2957795131

    elseif (y! < 0.0) & (x! >= 0.0)

        result! = (ArcTan(x!/y!) + 3.1415926535897932) * 57.2957795131

    elseif (y! < 0.0) & (x! < 0.0)

        result! = (ArcTan(x!/y!) - 3.1415926535897932) * 57.2957795131

    elseif (y! = 0.0) & (x! > 0.0)

        result! = 1.57079632679 * 57.2957795131

    elseif (y! = 0.0) & (x! < 0.0)

        result! = -1.57079632679 * 57.2957795131

    elseif (y! = 0.0) & (x! = 0.0)

        'ne...aucune la distance, aucun direction, peux chez besoin abgefangen volonté
        result! = -1000

    endif

    Retour result!

ENDPROC

Tandis que isKey(27) = 0

    sleep 10
    oGL("clear")
    oGL("move",0,0,-2)
    'Mittelpunkt des Gesichts
    oGL("2D", 0, 0, -2, oglX&, oglY&)
    'cela Gesicht (oglX&, oglY&) schaut zur Mausposition (%mousex, %mousey)
    'zRot! = roue2deg(ArcTan2(%mousex - oglX&, %mousey - oglY&))
    'ou bien
    zRot! =ArcTan4(%mousex, %mousey, oglX&, oglY&)
    oGL("rotate",0,0,zRot!)
    oGL("texture",1,1)
    oGL("quad",1,1)
    oGL("show")

Endwhile


9 kB
Bezeichnung:ArcTan2 OpenGL
Hochgeladen:11.08.2021
Downloadcounter63
Herunterladen
99 kB
Bezeichnung:Programm als EXE
Hochgeladen:11.08.2021
Downloadcounter67
Herunterladen
 
11.08.2021  
 




p.specht

sans Berücksichtigung de oGL donnais es la fois un Snippet en supplément: [...] 
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
11.08.2021  
 




Sven
Bader
Pour atan et arctan habe je gesucht, pour "arcus" pas Dein Beitrag ist sogar droite récente.

je serait oui une C++ DLL de cette Dingen faire mais erfahrungsgemäß kostet qui DLL Aufruf so viel Zeit comment on par qui schnellere Ausführung gewonnen hätte.
 
11.08.2021  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.490 Views

Untitledvor 0 min.
H.Brill04.06.2024
Sven Bader05.08.2023
Ernst29.05.2022
p.specht18.11.2021
plus...

Themeninformationen

cet Thema hat 2 participant:

Sven Bader (2x)
p.specht (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie