Français
Forum

Mathe: Winkelberechnung

 
- page 1 -


Hey pourrait mir s'il te plaît einer qui deutlich plus mathématique gebildeten XProfaner sur qui Sprünge aider ? je vois den forêt avant Bäumen pas plus

Alles quoi je veux ist une schnelle Funktion qui aus qui Strecke xy,xxyy mir den winkel (360°!) zurückliefert.

mon Code funktioniert déjà - bof presque.
KompilierenMarqueSéparation
CLS

WHILE 1

    CLS
    PRINT WNK(100,100,%MOUSEX,%MOUSEY)
    SLEEP 100

ENDWHILE

WAITKEY

proc WNK

    PARAMETERS X&,Y&,XX&,YY&
    var T!=0

    IF XX&<X&

        RETURN WNK(XX&,Y&,X&,YY&)

    ENDIF

    IF YY&<Y&

        RETURN WNK(X&,YY&,XX&,Y&)

    ENDIF

    LINE X&,Y& - XX&,YY&
    var DX!=XX&-X&
    var DY!=YY&-Y&
    T!=(SQRT(DX!*DX!+DY!*DY!))

    IF YY&<XX&

        T!=RAD2DEG(SINH(DY!/T!))

    ELSE

        T!=45+(45-RAD2DEG(SINH(DX!/T!)))

    ENDIF

    RETURN T!

endproc

proc RAD2DEG

    PARAMETERS ANGLE!
    RETURN (180 / @PI()) * ANGLE!

endproc

proc SINH

    PARAMETERS ANGLE!
    RETURN (@EXP(ANGLE!) - @EXP(-ANGLE!)) / 2

./../function-references/XProfan/endproc/'>endproc

 
05.12.2006  
 



 
- page 3 -


WO 270 ist ist Wurst! peux Du volontiers faire comme besser wäre!
 
05.12.2006  
 



seulement la fois nebenbei cela passende Gegenstück c'est moi aussi grad gelungen ^ ^
KompilierenMarqueSéparation
const myPI:=3.1415926535897932384626433832795
float cos_outpx,cos_outpy

proc getcircp(float xp,yp,r,w)

    cos_outpx:=((((r*sin(((-1*(((-1+w)*myPI)+myPI))/180))))*-1)+xp)
    cos_outpy:=((((r*cos(((-1*(((-1+w)*myPI)+myPI))/180))))*-1)+yp)

end
a>

KompilierenMarqueSéparation
var COS_OUTPX!=0
var COS_OUTPY!=0

proc GETCIRCP

    PARAMETERS XP!,YP!,R!,W!
    COS_OUTPX!=((((R!*SIN(((-1*(((-1+W!)*3.1415926535897932384626433832795)+3.1415926535897932384626433832795))/180))))*-1)+XP!)
    COS_OUTPY!=((((R!*COS(((-1*(((-1+W!)*3.1415926535897932384626433832795)+3.1415926535897932384626433832795))/180))))*-1)+YP!)

endproc

Okok sur qui Klammern reden wir pas! *g*
 
05.12.2006  
 



Jupp lol quelque chose comme braucht qui monde *gg*
KompilierenMarqueSéparation
 {$cleq}
const myPI=3.1415926535897932384626433832795
float cos_outpx,cos_outpy,w
cls

while 1

    cls
    w:=wnk(100,100,mousex,mousey,false)
    print int(w),"°  "
    getcircp 100,100,50,w+90
    drawtext cos_outpx,cos_outpy,"+"
    sleep 50

wend

waitkey

proc wnk(float x1,y1,x2,y2,int mode)

    float dx=x2!-x1!
    float dy=y2!-y1!
    line x1,y1 - x2,y2
    case (dx<0) and (dy<0) : return wnk(x2,y2,x1,y1,3)
    case dx<0 : return wnk(x2,y1,x1,y2,1)
    case dy<0 : return wnk(x1,y2,x2,y1,2)
    casenot dx : dx=0.0000001
    casenot dy : dy=0.0000001
    float w=arctan(dy/dx)*57.295779513082320876798154814105

    if (mode==1)

        w:=90+(90-w)

    elseif (mode==2)

        w:=360-w

    elseif (mode==3)

        w:=180+w

    endif

    return w

endproc

proc Winkel

    Parameters x1!,y1!,x2!,y2!
    declare dx!,dy!
    dx!=x2!-x1!
    dy!=y2!-y1!

    if Abs(dx!)<Abs(dy!)

        Return (Pi()/2-ArcTan(dx!/dy!)+If((dx!<0) | (dy!<0),Pi(),0))/Pi()*180

    else

        Return (ArcTan(dy!/dx!)+If((dx!<0) | (dy!<0),Pi(),0))/Pi()*180

    endif

endproc

proc getcircp(float xp,yp,r,w)

    cos_outpx:=((((r*sin(((-1*(((-1+w)*myPI)+myPI))/180))))*-1)+xp)
    cos_outpy:=((((r*cos(((-1*(((-1+w)*myPI)+myPI))/180))))*-1)+yp)

s4 href='./../../funktionsreferenzen/XProfan/endproc/'>endproc

 
05.12.2006  
 




Hubert
Binnewies
alors, je suis qui attitude, qui meiste Prozessorzeit allez chez komplizierten Berechnungen comment Sinus & Co sur elle.
tout autor halte je es so comme mon verstorbener père (il était Berufskraftfahrer) toujours dit hat: qui kürzeste Weg ist pas toujours qui Schnellste !.

J'ai pensé mir: chez X,Y XX,y YY,X erhält on toujours un rechtwinkliges Dreieck.
si je mir Dein erstes Proggi genauer ansehe ist là XX toujours grösser comme X et YY toujours grösser comme Y.
Demzufolge braucht on jusqu'à sur ne Wurzel den Proz seulement avec Grundrechenarten trop charger, qui il entier vite berechnen peux.
seulement den einfachen Pythagoras à Hypothenuse trop berechnen et ensuite un Seiten-Winkelverhältnis.

et sollte X doch la fois grösser volonté comme XX ensuite prends simple X-XX la fois -1 et den Winkel plus 90 .
et sollte Y doch la fois grösser son comme YY ensuite prends simple Y-YY la fois -1 et zieh cela Ergebniss de 360 Grad ab... et déjà passt es...

cela ganze passt ensuite dans qui Formel im Bild.

Im Programmtechnischen Umsetzen es Du besser comment je...

Hubert

3 kB
Kurzbeschreibung: Gleichung
Hochgeladen:06.12.2006
Downloadcounter172
Download
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
06.12.2006  
 



je glaub cela isses quoi je mise en œuvre habe et je trouve Dein Pa hatte avec cela sicherlich souvent droite.
 
06.12.2006  
 




Hubert
Binnewies
[quote-part:1a7341c7f9=iF]je glaub cela isses quoi je mise en œuvre habe[/quote-part:1a7341c7f9]
na plan pas.....
Du utilise qui Funktionen zum umrechnen ins Bogenmaß um Sinus et Cosinus trop nutzen....

Lass cela doch alles weg....
Brauchst du doch garnicht...
Setz simple mon Formel um.. seulement avec den payons, ensuite venez direct comme Antwort qui Gradzahl raus..
allez doch viel fixer....
et cela aussi encore soweit comment du @Set(Decimals,N) mets.....

je meinte avec cela: Du utilise den direkten Berechnungsweg, brauchst pour mais qui change ins Bogenmaß et den Sinus.

dans meiner Formel wird alles dans 2 Schritten berechnet (Pythagoras et Verhältniss), mais pour sans attention qui Einheiten, womit qui rechenintensiven Operationen comment @Deg2roue(N) ou bien @Sin(N) wegfallen...

Hubert
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
06.12.2006  
 



sqrt( ( (xx-x)² + (yy-y)² ) / (xx-x) )*90 ? Quelque chose comme?
 
06.12.2006  
 




Hubert
Binnewies
Bingo.....
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
06.12.2006  
 




RGH
et dans XProfan wird aus qui Formal ensuite cet la ligne:
KompilierenMarqueSéparation
!a! = (90 * sqrt((xx% - x%)^2 + (yy% - y%)^2)) / (xx% - x%)
>

Einen Tique plus rapide peut-être avec qui Sqr()-Funktion:
KompilierenMarqueSéparation
!a! = (90 * sqrt(sqr(xx% - x%) + sqr(yy% - y%))) / (xx% - x%)
>

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
06.12.2006  
 




Hubert
Binnewies
et alles sans grad change....
gehts encore plus rapide???
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
06.12.2006  
 



So - eh bien erfüllt Eure Formel mais malheureusement toujours pas den Zweck des Threads ici - quoi cet mais tut:
KompilierenMarqueSéparation
proc WNK

    PARAMETERS X1!,Y1!,X2!,Y2!,MODE%
    var DX!=X2!-X1!
    var DY!=Y2!-Y1!
    LINE X1!,Y1! - X2!,Y2!

    IF (DX!<0) AND (DY!<0)

        RETURN WNK(X2!,Y2!,X1!,Y1!,3)

    ENDIF

    IF DX!<0

        RETURN WNK(X2!,Y1!,X1!,Y2!,1)

    ENDIF

    IF DY!<0

        RETURN WNK(X1!,Y2!,X2!,Y1!,2)

    ENDIF

    IFNOT DX!

        DX!=0.0000001

    ENDIF

    IFNOT DY!

        DY!=0.0000001

    ENDIF

    var W!=ARCTAN(DY!/DX!)*57.295779513082320876798154814105

    IF (MODE%=1)

        W!=90+(90-W!)

    ELSEIF (MODE%=2)

        W!=360-W!

    ELSEIF (MODE%=3)

        W!=180+W!

    ENDIF

    RETURN W!

endproc


alors comment devrait es car eh bien lauten?
 
06.12.2006  
 



alors peut-être encore la fois zur Aufgabenstellung - je comme MatheUnProfi habe o.G. Funktion erstellt quel je qui Koordinaten pour une ligne number übergebe et den Winkel erhalte. sans si et mais doit qui Werte 0°-360° zurückgeliefert volonté - Umsprung-et-Übergangsfliessend.

So comment je cela vois brauche je pour seulement den Arcustangens - une Multipli et Division. peux un MatheProfi cela améliorer?
 
06.12.2006  
 




répondre


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

6.924 Views

Untitledvor 0 min.
Michael W.23.12.2016
Julian Schmidt25.11.2013
holmol9310.05.2013
Andreas Koch07.11.2012
plus...

Themeninformationen



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