Steigung berechnen
Übersicht

![]() |
BigmichiBetreff: Steigung berechnen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 1024,768,16,1
SetBuffer BackBuffer() Type Obj Field x#,y# Field speed Field id End Type o.obj = New obj o\x = 10 o\y = 10 o\id = 1 o.obj = New obj o\x = 600 o\y = 400 o\id = 2 Local x#,y#,x1#,y1#,x2#,y2# Repeat If KeyDown(1) Then End Cls For o.obj = Each obj Color 255,255,255 Oval o\x,o\y,20,20 Select o\id Case 1 x1 = o\x y1 = o\y Case 2 x2 = o\x y2 = o\y End Select steigung# = Float((y2-y1)/(x2-x1)) If o\id = 1 Then o\x = o\x + .1 o\y = o\y + steigung/10 End If Next Text 0,0,steigung Flip Forever dieses Beispiel hat mir "Izewind" gemacht auf die frage wie ich ein Objekt auf eina nderes direkt zufahren lassen kann nur mein Problem ist nun dass ich unterschiedlcihe geschwindigkeiten bekomme umsohöher die Differenz von beiden Y ist um so schneller fährt der Ball -.- Kann man das irgendwie eiheitlichen ? wäre sehr dankebar =) |
||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielleicht so.Code: [AUSKLAPPEN] neuesteigung# = Sin(Atan2(steigung,1)) / Cos(Atan2(steigung,1)) * Bewegungsgeschwindigkeit Der Code berechnet den Winkel, in den die Steigung zeigt, und daraus wieder eine Steigung mit konstanter Länge. Habs jetzt nicht ausprobiert, bin mir nicht sicher ob das klappt.
|
||
![]() |
Bigmichi |
![]() Antworten mit Zitat ![]() |
---|---|---|
das klappt irgendwie nicht ![]() |
||
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab auch mal n bisschen herumgetüftelt. (Mit Schrittwert und so) Ich habe dashier herausbekommen. Es gibt wirklich nur minimale Veränderungen der Geschwindigkeit, die lassen sich bei diesem Konzept mit Steigung glaube ich nicht verhindern, da die einzelnen "stationen" die das Objekt anläuft nur sehr selten auf einer linie aus pixeln liegen. Wenn das nicht der Fall ist, bewegt sich die Kugel eben in nicht wahrneknbaren ZickZack-Bahnen auf das andere Objekt zu, dadurch verändert sich glaube ich auch die Geschwindigkeit.
Atan2 wäre eine Lösung, aber ich bin noch nicht so vertraut damit. Dashier hab ich mal im Codearchiv entdeckt, vielleicht hilft dir das: https://www.blitzforum.de/view...ight=atan2 Also mein Code: Code: [AUSKLAPPEN] Graphics 1024,768
SetBuffer BackBuffer() Global x1#,x2#,y1#,y2#,eckx#,ecky#,schiebx#,schieby#,schritt# Const geschwindigkeit = 5 x1 = 200 y1 = 200 MoveMouse 400,400 Delay 2000 Repeat x2 = MouseX() y2 = MouseY() eckx = x1 ecky = y2 schritt = Sqr((eckx - x2)^2+(ecky - y1)^2)/geschwindigkeit If schritt < 1 Then schritt = 1 schiebx = (x2 - eckx)/schritt schieby = (y1 - ecky)/schritt x1 = x1 + schiebx y1 = y1 - schieby Oval x1,y1,20,20 Oval x2,y2,20,20 Text 0,0,"Speed " + Str$((schiebx + schieby)/2),0,0 Flip Cls Until KeyHit(1) End |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
![]() |
Bigmichi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey mega super dolel Danke =) ![]() ![]() ![]() Da freut mansich echt auf das Forum bei solcher Hilfe =) echt danke =) |
||
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kein Problem ![]() |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group