|  |  | 
|  | 
|  | 
|  | | Hey podría me Por favor, uno el deutlich mehr matemáticamente gebildeten XProfan en el Sprünge helfen ? Yo sehe el Wald antes Bäumen no mehr  
 Alles Yo voluntad es una schnelle Función de el Strecke xy,xxyy me el winkel (360°!) zurückliefert.
 
 Mein Code funktioniert ya - naja fast.
 KompilierenMarcaSeparación
 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
 | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  Hubert
 Binnewies
 | | ¡Hola IF 
 also...en Mathe bin Yo bien en él...aber en el verstehen deine Codes no tan bueno...
 
 debería el el Sinussatz ser???
 
 macht me doch veces ne Gleichung oder Formel en y yo Denk me qué de..oki??
 
 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!"
 | 05.12.2006  ▲ | 
 | 
|  | 
| 
 
 
 | 
|  | 
|  Carlo
 Keil
 | | Hola si, si yo el correcto verstehe, suchst du el Winkel zwischen uno Strecke o. deren Verlängerung y x-Achse.
 Das debería con sólo uno Winkelfunktion ir:
 (mangels Profano y Testmöglichkeit sólo una Pseudocode)
 
 Winkel en el Bogenmaß = Arcustangens(abs((y2 - y1) / (x2 - x1)))
 
 Üblicherweise son el Winkelfunktionen no übermäßig rápidamente. Wenn lo dir en Performance ankommt sehe Yo sólo zwei Möglichkeiten: Ensamblador oder beim Programmstart una propio Arcustangenstabelle inicializar, el du entonces sin Berechnung direkt abgreifst (deren Größe hängt natürlich de el deseado Genauigkeit de
  ). 
 HTH
 Carlo
 | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  | | @Hubert: Lo va me sólo por lo tanto de uno cada Linie el Winkel ermitteln a puede. Yo tue mich schwer lo que el Umsprünge betrifft si z.B. xx&<x& es etc. 
 @Carlo: Tabellen, klar, tener hier auch ya solche Nuevo - aber el Genauigkeit debería ya möglichst hoch ser - Tabellen fallen hier de.
 
 An Winkel en el Bogenmaß = Arcustangens(abs((y2 - y1) / (x2 - x1))) kann Yo mich auch erinnern - el Yo oben sí angewandt.
 
 Wenn Yo obiges aber laufen lasse hay zw. 160° y 200° una Problema - y yo bin betriebsblind.
 
 Natürlich werd ego el Performance wegen después de ASM übertragen.
 | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  | | Hm also me schenkt keiner solch una Proc wa?  | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  Jac
 de
 Lad
 | | Yo erlaube me mich a matemáticamente gebildeten Personen hier en el Foro a zählen...  
 Aber Yo verstehe el Fragestellung no. Kannste el otra vez ausführen? Auch de el Code voluntad Yo no schlau...
 | 
 | 
|  | 
|  | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
 | 05.12.2006  ▲ | 
 | 
|  | 
| 
 
 
 | 
|  | 
|  | | Ok klar! 
 Yo male una Linie de 100,100 después de mousex,mousey
 
 Alles Yo gerne hätte es el Winkel el Linie!
 
 ----> 0°
 
 <--- 180°
 
 ^
 |
 270°
 
 Halt una Proc el me simplemente siempre el richtigen Winkel son después de que ihr x,y - xx,yy transferencia habe.
 | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  Jac
 de
 Lad
 | | Aso, kein Problema, kriegst bald ne Antwort! Muss ahora aber grad qué más hacer... | 
 | 
|  | 
|  | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
 | 05.12.2006  ▲ | 
 | 
|  | 
| 
 
 
 | 
|  | 
|  |  | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  | | Ach lol Yo dussel - Yo habs. Hey aber tal vez es Deins más rápido? Yo poste meins igual veces... | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  | | KompilierenMarcaSeparación
  {$cleq}
const myPi=3.1415926535897932384626433832795
cls
while 1
    cls
    print int(wnk(100,100,mousex,mousey,false)),"°  "
    sleep 50
wend
waitkey
proc wnk(float x1,y1,x2,y2,int mode)
    float x= sub ( x2! , x1! )
    float y= sub ( y2! , y1! )
    line x1,y1 - x2,y2
    case (x<0) and (y<0) : return wnk(x2,y2,x1,y1,3)
    case x<0 : return wnk(x2,y1,x1,y2,1)
    case y<0 : return wnk(x1,y2,x2,y1,2)
    casenot x : x=0.0000001
    casenot y : y=0.0000001
    float w=arctan(y/x)*180/myPi
    if (mode==1)
        w:=90+(90-w)
    elseif (mode==2)
        w:=360-w
    elseif (mode==3)
        w:=180+w
    endif
    return w
ENDPROC
KompilierenMarcaSeparación
 CLS
WHILE 1
    CLS
    PRINT INT(WNK(100,100,%MOUSEX,%MOUSEY,0)),"°  "
    SLEEP 50
ENDWHILE
WAITKEY
proc WNK
    PARAMETERS X1!,Y1!,X2!,Y2!,MODE%
    var X!=SUB ( X2! , X1! )
    var Y!=SUB ( Y2! , Y1! )
    LINE X1!,Y1! - X2!,Y2!
    IF (X!<0) AND (Y!<0)
        RETORNO WNK(X2!,Y2!,X1!,Y1!,3)
    ENDIF
    IF X!<0
        RETORNO WNK(X2!,Y1!,X1!,Y2!,1)
    ENDIF
    IF Y!<0
        RETORNO WNK(X1!,Y2!,X2!,Y1!,2)
    ENDIF
    IFNOT X!
        X!=0.0000001
    ENDIF
    IFNOT Y!
        Y!=0.0000001
    ENDIF
    var W!=ARCTAN(Y!/X!)*180/3.1415926535897932384626433832795
    IF (MODE%=1)
        W!=90+(90-W!)
    ELSEIF (MODE%=2)
        W!=360-W!
    ELSEIF (MODE%=3)
        W!=180+W!
    ENDIF
    RETORNO W!
ENDPROC
 | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  Jac
 de
 Lad
 | | Probier veces el: KompilierenMarcaSeparación
 
proc Winkel
    Parameters x1!,y1!,x2!,y2!
    declare dx!,dy!
    dx!=x2!-x1!
    dy!=y1!-y2!
    if Abs(dx!)<Abs(dy!)
        Return Pi()/2-ArcTan(dx!/dy!)+If((dx!<0) | (dy!<0),Pi(),0)
    else
        Return ArcTan(dy!/dx!)+If((dx!<0) | (dy!<0),Pi(),0)
    endif
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
 | 05.12.2006  ▲ |  | 
 | 
|  | 
| 
 
 
 |