Bild bewegen
Übersicht

cavebirdBetreff: Bild bewegen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tjo also ich möchte das sich ein Bild langsam dahin bewegt wo ich draufgedrückt habe.
Soll aber auch ungerade strecken machen können also z.B. 45°. Hat einer ne Idee wie das geht? |
||
MegaUpload.de -- Uploade bis zu 2MB pro Bild !!DEIN PARTNER IN SACHEN UPLOAD --bitte weiterempfehlen, nur so können wir bekannt werden... |
![]() |
Blatolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
versuchs mal mit sin und cos sowie atan2 | ||
cavebird |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah bisher konnte ich diesn Kram immer vermeiden, aber ich glaube jetzt wird es mal Zeit, dass ich das lerne...außer wenn man es wieder umgehen kann? | ||
MegaUpload.de -- Uploade bis zu 2MB pro Bild !!DEIN PARTNER IN SACHEN UPLOAD --bitte weiterempfehlen, nur so können wir bekannt werden... |
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
soll sich das bild von punkt a nach b auf dem direktesten weg bewegen?
falls ja, verwende sin/cos um den steigungswinkel zu berechnen. edit: man als ich angefangen hab zu schreiben, war noch keine andre antwort da ![]() |
||
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie berechnet man eigentlich mit sin/cos den Steigungswinkel? | ||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn die Geschwindigkeit nicht konstant sein soll, kannst du auch einfach die x - und die y - Geschwindigkeit einzeln berechnen, indem du die Entfernungen durch einen bestimmten Wert teilst. Musst dann allerdings Floats benutzen (auch für die Koordinaten). Musst du eigentlich sowieso ![]() Wenn du konstante Geschwindigkeit brauchst, musst eben den Winkel mit Atan2 berechnen und dann mit Sin und Cos die X - und Y - Geschwindigkeit berechnen. Da gabs schonmal nen Thread zu, es kann sogar sein dass da noch eine andere Lösung gefunden wurde - such doch mal danach. Edit:Zitat: wie berechnet man eigentlich mit sin/cos den Steigungswinkel? Überhaupt nicht, sondern nur mit Atan. Schau am Besten mal in der Onlinehilfe nach Atan2.
|
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
benutzt die suchfunktion! | ||
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kannst ja ma anschauen:
Code: [AUSKLAPPEN] Graphics 800,600,0,2 SetBuffer BackBuffer() x = 100 y = 100 x1 =300 y1= 300 px#=x py#=y Lang=Abs(x-x1) Hoch=Abs(y-y1) schreg1# = Sqr((200*200) + (100*100)) schreg# = Sqr((Lang*Lang) + (Hoch*Hoch)) winkel#=ACos(Lang/schreg) Repeat Cls If px => x1 And px < x1+1 And py => y1 And py < y1+1 Then winkel#=(360-ATan2(200,100)) If px => 400 And px < 401 And py =< 100 And py > 99 Then winkel#=(ATan2(300,100)) If px => 500 And px < 501 And py =< 400 And py > 399 Then winkel#=360-(ATan2(350,100)) Text 0,0,winkel+ " " + px + " " + py Color 255,255,255 Line x,y,x1,y1 If y<y1 And x<x1 Then px = px + Cos(winkel) py = py + Sin(winkel) EndIf If y>y1 And x>x1 Then px = px - Cos(winkel) py = py - Sin(winkel) EndIf If y<y1 And x>x1 Then px = px - Cos(winkel) py = py + Sin(winkel) EndIf If y>y1 And x<x1 Then px = px + Cos(winkel) py = py - Sin(winkel) EndIf Color 0,255,0 Line 300,300,400,100 Line 400,100,500,400 Line 500,400,600,50 Color 255,0,0 Oval px,py,6,6,1 Flip Until KeyHit(1) is zwar vielleicht etwas umständlich, aber es soll dir ja nur die sin/cos etc. funktion verdeutlichen ich hoff du kannst nachvollziehen was ich gemacht habe, im moment hab ich keine zeit es zu kommentieren. |
||
Sibitiger |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Meine güte lest doch mal was nach das is nur aus der Online-Hilfe, wenn du die nicht hast dann lad sie dir mal runter
Zitat: Winkel#=ATAN2# (Y#, X#) Beschreibung Diese Funktion berechnet den Winkel aus X- und Y-Längen. Es ist somit die erweiterte Tangensfunktion. Beachte, dass diese Funktion etwas anders als ATAN funktioniert, und keine Arcustangens-Funktion ist. Der Winkels wird nicht aus einem Tangenswert ermittelt, sondern aus den zwei Katheten eines rechtwinkligen Dreiecks. Diese Funktion kann einen Winkel im Umkreis von -180° bis 180° berechnen. Dadurch ist es wesentlich einfacher, als die ATAN-Funktion, wo man erst durch logische Überlegungen den Winkel ausrechnen kann. Um einen vollen Winkel im Bereich von 0° bis 360° auszurechnen, muss man nur diese Formel anwenden: Winkel#=(ATAN2(y#,x#)+360) MOD 360 Parameter Y = vertikaler Abstand (Gegenkathete) X = horizontaler Abstand (Ankathete) Rückgabewert Es wird ein Winkel in Grad zurückgeliefert. Es sind alle Winkel im Berech von 0 bis 360° möglich (bzw. -180° bis 180°). Die Grafik zeigt den Zusammenhang zwischen Winkel und Tangenswert. Beispiel Dieses Beispiel zeigt zwei bewegende Kreise. Der erste und schnellere Kreis läuft quer über dem ganzen Bildschirm. Der zweite ist langsamer und versucht ständig den ersten über möglicht direkten Weg zu erreichen. Code: [AUSKLAPPEN] GRAPHICS 640,480,16,1 SETBUFFER BACKBUFFER() SEEDRND MILLISECS() DIM x(1),y(1),w(1),s(1) x(0)=RAND(0,639) y(0)=RAND(0,639) w(0)=RAND(0,359) s(0)=3 x(1)=RAND(0,639) y(1)=RAND(0,639) s(1)=2 WHILE KEYHIT(1)=0 COLOR 0,0,0 RECT 0,0,640,480 COLOR 255,255,255 w(0)=w(0)+RAND(-10,10) minx=x(0)-x(1) miny=y(0)-y(1) minx2=-(x(1)-640-x(0)) miny2=-(y(1)-480-y(0)) minx3=x(0)-640-x(1) miny3=y(0)-480-y(1) IF ABS(minx2)<ABS(minx) THEN minx=minx2 IF ABS(miny2)<ABS(miny) THEN miny=miny2 IF ABS(minx3)<ABS(minx) THEN minx=minx3 IF ABS(miny3)<ABS(miny) THEN miny=miny3 w(1)=ATAN2(miny,minx) FOR i=0 TO 1 x(i)=x(i)+COS(w(i))*s(i) y(i)=y(i)+SIN(w(i))*s(i) IF x(i)<0 THEN x(i)=640+x(i) IF x(i)>639 THEN x(i)=x(i)-640 IF y(i)<0 THEN y(i)=480+y(i) IF y(i)>479 THEN y(i)=y(i)-480 OVAL x(i)-5,y(i)-5,10,10,1 NEXT FLIP WEND WAITKEY() END Siehe auch ACOS, ASIN, ATAN, COS, SIN, TAN |
||
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich find mein beispiel anschaulicher ![]() |
||
Sibitiger |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@noir ist es vielleicht auch aber man hätte sich das andere ja wenigstens mal angucken können oder ![]() Sibitiger |
||
cavebird |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jo danke an alle, ich werde mich nun in diesen Kram einarbeiten, ist ja nicht so schwer wie ich immer dachte ![]() |
||
MegaUpload.de -- Uploade bis zu 2MB pro Bild !!DEIN PARTNER IN SACHEN UPLOAD --bitte weiterempfehlen, nur so können wir bekannt werden... |
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
klar Sibitiger, aber ich denke wenn man in mathe noch keine sin, etc... hatte is die erklärung der bb-hilfe nicht so leicht zu verstehen.
natürlich kann ma mein beispiel genauso wenig kapieren*g |
||
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
Daran wirds wohl bei mir liegen! ![]() ![]() ![]() ![]() ![]() |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
Sibitiger |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tja das is das Problem wenn man sin cos tan noch nich in der Schule hatte aber hier jetzt eine Erklärung abzugeben wie das funktioniert wäre zu viel arbeit und zu viel text...(zumindest hab ich im mom keine lust) | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group