| |
|
|
- Página 1 - |
|
| 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ónCLS
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
|
|
|
| |
|
|
| |
|
- Página 3 - |
|
|
| WO 270 es es Wurst! ¿Puede Usted gerne hacer como mejor wäre! |
|
|
| |
|
|
|
| Nur veces nebenbei el passende Gegenstück me está auch grad gelungen ^ ^ KompilierenMarcaSeparación KompilierenMarcaSeparaciónvar 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 en Klammern reden wir no! *g* |
|
|
| |
|
|
|
| Jupp lol algo como braucht el Welt *gg* KompilierenMarcaSeparación {$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
|
|
|
| |
|
|
|
Hubert Binnewies | Also, Yo bin el Meinung, el meiste Prozessorzeit va en komplizierten Berechnungen como Sinus & Co en él. Darum halte Yo ya que mein verstorbener Vater (él war Berufskraftfahrer) siempre dijo ha: Der kürzeste Weg es no siempre el Schnellste !.
Pensé me: en X,Y XX,y YY,X erhält uno siempre una rechtwinkliges Dreieck. Wenn Yo Su erstes Proggi genauer ansehe es como XX siempre grösser como X y YY siempre grösser como Y. Demzufolge braucht uno salvo ne Wurzel el Proz sólo Grundrechenarten a beauftragen, el él bastante rápidamente berechnen kann. Erst el einfachen Pythagoras a Hypothenuse a berechnen y luego una Páginas-Winkelverhältnis.
Und debería X doch veces grösser voluntad como XX entonces nimm simplemente X-XX veces -1 y el Winkel plus 90 . Und debería Y doch veces grösser ser como YY entonces nimm simplemente Y-YY veces -1 y zieh el Ergebniss de 360 Grad de... y ya passt lo...
Das todo passt entonces en el Formel en el Bild.
Im Programmtechnischen Umsetzen bist Usted mejor Yo...
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 ▲ |
|
|
|
|
| Yo glaub el isses Yo se llevó a cabo y yo finde Su Pa hatte así sicherlich oft bastante. |
|
|
| |
|
|
|
Hubert Binnewies | [quote:1a7341c7f9=iF]Yo glaub el isses Yo se llevó a cabo[/quote:1a7341c7f9] na eben no..... Usted nutzt el Características para umrechnen en el Bogenmaß en Sinus y Cosinus a nutzen....
Lass el doch alles weg.... Brauchst du doch garnicht... Setz simplemente mi Formel en.. sólo el Pagar, entonces kommt direkt como Antwort el Gradzahl fuera.. va doch viel fixer.... y el auch todavía soweit como du @Conjunto(Decimals,N) setzt.....
Yo meinte así: Usted nutzt el direkten Berechnungsweg, necesidad dafür aber el Umrechnung en el Bogenmaß y el Sinus.
In meiner Formel se alles en 2 Schritten berechnet (Pythagoras y Verhältniss), aber dafür sin Beachtung el Einheiten, womit el rechenintensiven Operationen como @Deg2Rad(N) oder @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 ? Algo como? |
|
|
| |
|
|
|
Hubert Binnewies | |
|
| 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 | |
|
| 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 | y alles sin grad umrechnung.... gehts todavía más rápido??? |
|
|
| 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 - nun erfüllt Eure Formel aber desafortunadamente siempre todavía no el Zweck des Hilos hier - qué esta aber tut: KompilierenMarcaSeparación
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
Also como debería lo porque nun lauten? |
|
|
| |
|
|
|
| Also tal vez una vez más a Aufgabenstellung - Yo como MatheUnProfi habe o.G. Función erstellt welcher Yo el Koordinaten para una Linie übergebe y el Winkel erhalte. Ohne Wenn y Aber necesario el Werte 0°-360° zurückgeliefert voluntad - Umsprung-y-Übergangsfliessend.
So como yo sehe brauche Yo dafür sólo el Arcustangens - una Multipli y Division. Kann una MatheProfi el verbessern? |
|
|
| |
|
|