| |
|
|
- 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éparationCLS
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
|
|
|
| |
|
|
| |
|
- page 4 - |
|
|
 Hubert Binnewies | tu as droite....du konntest avec meiner Gleichung nix anfangem weil vous schlichtweg faux était....
qui korrekte Formel vois du unten im Bild.
Woraus sich folgendes Listing ergibt...übergangs- et sprunglos... KompilierenMarqueSéparationCLS
declare T!,DX!,DY!
WHILE 1
CLS
PRINT WNK(400,200,%MOUSEX,%MOUSEY)
SLEEP 50
ENDWHILE
WAITKEY
proc WNK
PARAMETERS X&,Y&,XX&,YY&
LINE X&,Y& - XX&,YY&
if xx&-x&>0
if yy&-y&>0
T! = (90*(yy& - y&))/sqrt((xx& - x&)^2 + (yy& - y&)^2)
endif
endif
if xx&-x&<0
if yy&-y&>0
T! = 90-((90*(yy& - y&))/sqrt(((xx& - x&)*-1)^2 + (yy& - y&)^2))+90
endif
endif
if xx&-x&<0
if yy&-y&<0
T! = 180+((90*((yy& - y&)*-1))/sqrt(((xx& - x&)*-1)^2 + ((yy& - y&)*-1)^2))
endif
endif
if xx&-x&>0
if yy&-y&<0
T! = 180-((90*((yy& - y&)*-1))/sqrt((xx& - x&)^2 + ((yy& - y&)*-1)^2))+180
endif
endif
RETURN T!
./../funktionsreferenzen/XProfan/endproc/'>endproc
peux du avec cela quoi anfangen??
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 ▲ |
|
|
|
|
 Hubert Binnewies | tu as droite....du konntest avec meiner Gleichung nix anfangem weil vous schlichtweg faux était....
qui korrekte Formel vois du unten im Bild.
Woraus sich folgendes Listing ergibt...übergangs- et sprunglos... KompilierenMarqueSéparationCLS
declare T!,DX!,DY!
WHILE 1
CLS
PRINT WNK(400,200,%MOUSEX,%MOUSEY)
SLEEP 50
ENDWHILE
WAITKEY
proc WNK
PARAMETERS X&,Y&,XX&,YY&
LINE X&,Y& - XX&,YY&
if xx&-x&>0
if yy&-y&=0
T! = 0
endif
endif
if xx&-x&>0
if yy&-y&>0
T! = (90*(yy& - y&))/sqrt((xx& - x&)^2 + (yy& - y&)^2)
endif
endif
if xx&-x&=0
if yy&-y&>0
T! = 90
endif
endif
if xx&-x&<0
if yy&-y&>0
T! = 90-((90*(yy& - y&))/sqrt(((xx& - x&)*-1)^2 + (yy& - y&)^2))+90
endif
endif
if xx&-x&<0
if yy&-y&=0
T! = 180
endif
endif
if xx&-x&<0
if yy&-y&<0
T! = 180+((90*((yy& - y&)*-1))/sqrt(((xx& - x&)*-1)^2 + ((yy& - y&)*-1)^2))
endif
endif
if xx&-x&=0
if yy&-y&<0
T! = 270
endif
endif
if xx&-x&>0
if yy&-y&<0
T! = 180-((90*((yy& - y&)*-1))/sqrt((xx& - x&)^2 + ((yy& - y&)*-1)^2))+180
endif
endif
RETOUR T!
endproc
peux du avec cela quoi anfangen??
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 ▲ |
|
|
|
|
 | bien sûr super! Im prinzip si je maintenant beide vergleiche - la hâte Du mon ArcTang dans un Sqrt getauscht - la fois so grob dit.
je glaub - habs mais seulement übersprungen - Votre Formel gibt une falschen Wert si xx-x ou bien yy-y juste zéro ist. Ist mais Nebensache et par un >=0 statt >0 trop bebehen.
maintenant muss je seulement encore rausbekommen si Votre variante plus Performance dans XProfan hat.
Ah hab grad gesehen la hâte qui Formel nochmal révisée - je exposition la fois... |
|
|
| |
|
|
|
 Hubert Binnewies | [quote-part:93643e9b90=iF]Votre Formel gibt une falschen Wert si xx-x ou bien yy-y juste zéro ist. Ist mais Nebensache et par un >=0 statt >0 trop bebehen.
[/quote-part:93643e9b90] serait je pas 1faire....car si yy-y=0 wird et du 0*90 fais bleibt es 0... et si du ensuite versuchst qui 0 trop partager erhälst du une ungültigen Funktionswert..
exposition dans cela zweite listing...cela erste ist malheureusement un Unfall beim reinsetzen ins Forum... là habe je cela Problem gelöst...
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 ▲ |
|
|
|
|
 | Yeha! Votre Formal nécessaire 9% wniger Zeit chez mir 
ici qui SpeedTestCode: KompilierenMarqueSéparationDECLARE T!,DX!,DY!
RANDOMIZE
CLS
var TME&=&GETTICKCOUNT
WHILELOOP 10000
WNK(100,100,RND(200),RND(200))
ENDWHILE
TME&=&GETTICKCOUNT-TME&
var TME2&=&GETTICKCOUNT
WHILELOOP 10000
WNK2(100,100,RND(200),RND(200))
ENDWHILE
TME2&=&GETTICKCOUNT-TME2&
PRINT TME&
PRINT TME2&
WAITKEY
proc WNK
PARAMETERS X1!,Y1!,X2!,Y2!,MODE%
var DX!=X2!-X1!
var DY!=Y2!-Y1!
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
proc WNK2
PARAMETERS X&,Y&,XX&,YY&
IF XX&-X&>0
IF YY&-Y&=0
T!=0
ENDIF
ENDIF
IF XX&-X&>0
IF YY&-Y&>0
T!=(90*(YY& - Y&))/SQRT((XX& - X&)^2 + (YY& - Y&)^2)
ENDIF
ENDIF
IF XX&-X&=0
IF YY&-Y&>0
T!=90
ENDIF
ENDIF
IF XX&-X&<0
IF YY&-Y&>0
T!=90-((90*(YY& - Y&))/SQRT(((XX& - X&)*-1)^2 + (YY& - Y&)^2))+90
ENDIF
ENDIF
IF XX&-X&<0
IF YY&-Y&=0
T!=180
ENDIF
ENDIF
IF XX&-X&<0
IF YY&-Y&<0
T!=180+((90*((YY& - Y&)*-1))/SQRT(((XX& - X&)*-1)^2 + ((YY& - Y&)*-1)^2))
ENDIF
ENDIF
IF XX&-X&=0
IF YY&-Y&<0
T!=270
ENDIF
ENDIF
IF XX&-X&>0
IF YY&-Y&<0
T!=180-((90*((YY& - Y&)*-1))/SQRT((XX& - X&)^2 + ((YY& - Y&)*-1)^2))+180
ENDIF
E a>
RETOUR T!
endproc
|
|
|
| |
|
|
|
 | So maintenant versuche je Votre Formel nochmal bisl programmablauftechnisch trop optimaliser... |
|
|
| |
|
|
|
 Hubert Binnewies | [quote-part:ed547f9469=iF]So maintenant versuche je Votre Formel nochmal bisl programmablauftechnisch trop optimaliser...[/quote-part:ed547f9469] Hab je déjà...verliert dadurch zwar quelque chose à übersichtlichkeit, mais es verschwinden quelques zeitaufwendige IF Abfragen... KompilierenMarqueSéparationCLS
declare T!,DX!,DY!
WHILE 1
CLS
PRINT WNK(400,200,%MOUSEX,%MOUSEY)
SLEEP 50
ENDWHILE
WAITKEY
proc WNK
PARAMETERS X&,Y&,XX&,YY&
LINE X&,Y& - XX&,YY&
if xx&-x&>0
if yy&-y&=0
T! = 0 <---können auch 360 Grad sein
elseif yy&-y&>0
T! = (90*(yy& - y&))/sqrt((xx& - x&)^2 + (yy& - y&)^2)
elseif yy&-y&<0
T! = 180-((90*((yy& - y&)*-1))/sqrt((xx& - x&)^2 + ((yy& - y&)*-1)^2))+180
endif
endif
if xx&-x&=0
if yy&-y&>0
T! = 90
elseif yy&-y&<0
T! = 270
endif
endif
if xx&-x&<0
if yy&-y&>0
T! = 90-((90*(yy& - y&))/sqrt(((xx& - x&)*-1)^2 + (yy& - y&)^2))+90
elseif yy&-y&=0
T! = 180
elseif yy&-y&<0
T! = 180+((90*((yy& - y&)*-1))/sqrt(((xx& - x&)*-1)^2 + ((yy& - y&)*-1)^2))
endif
endif
RETURN T!
href='./../../funktionsreferenzen/XProfan/endproc/'>endproc
Besser?? |
|
|
| 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 ▲ |
|
|
|
|
 | |
|
| |
|
|
|
 | Erstklassige travail peux on là seulement dire!
merci!  |
|
|
| |
|
|
|
 Hubert Binnewies | jep....tu as oui nochn haufen subtraktionen et variablen benennungen rausgenommen....
es du car so zufrieden? ou bien muss encore plus rapide??
(je hatte oui versprochen le moi mir quoi überlege)....
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 ▲ |
|
|
|
|
 | alors doppelt so vite comment mon Ergebnis ist ungefähr cela quoi je mir vorstellte 
allez cet Funktion ähnlich umzustellen? KompilierenMarqueSéparation
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!)
endp >
|
|
|
| |
|
|
|
 Hubert Binnewies | [quote-part:0fce4dc459=iF]Erstklassige travail peux on là seulement dire!
merci! [/quote-part:0fce4dc459] s'il te plaît s'il te plaît.... Gerne gemacht...
[offtopic] ensuite kannste dir oui penser quoi hierdrin abgeht---> [...]  [/offtopic] |
|
|
| 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 ▲ |
|
|
|