Bogen Berechnen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Matthias

Betreff: Bogen Berechnen

BeitragDo, Jul 13, 2006 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo. Ich habe da ein kleines Problem und zwar möchte ich einen Bogen berechnen aber nicht mit beziar oder Himiter usw (Da man da schon 4Punkte Braucht) also nur mit drei.
user posted image
Hoffe mir kann jemand helfen.

~EDIT~
SO, die Leute wollen ja auch was sehen.
Skizze eingefügt.
Jan_

Vertex

BeitragDo, Jul 13, 2006 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Schwierig... Bei der Cosinusinterpolation wird eine Kurve von Punkt 1 nach Punkt 2 gebildet. Punkt 3 wird dabei aber nicht mit einberechnet.

Ich würde es dennoch mal mit Hermiteinterpolation versuchen. Bei der Kurve von Punkt 1 nach Punkt 2 setzt du den Anfangsstützpunkt zu Punkt 1 und den Endstützpunkt zu Punkt 3. Bei der Kurve von Punkt 2 zu Punkt 3 ist Punkt 1 der Anfangsstützpunkt und Punkt 3 der Endstützpunkt. Somit gehst du sicher, dass alle Punkte in die Kurve einbezogen werden.

mfg olli

Jan_

Ehemaliger Admin

BeitragDo, Jul 13, 2006 12:20
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, das ist schwerer als du vielleicht denkst.

hm, der Punkt in der Mitte, Zeigt auf die Beiden punkte, im Durchschnittswinkel,
sozuisagen, als ob sie 180 Grad gegenüberliegen.
dann hat der mittle punkt noch einen schub,( oder 2 kommt drauf an, was du machen willst) der sozusagen die Geschwindigkeit des striches angibt, von der er versucht sich zu entziehen, um an sein ziel zu kommen.
--> Strich muss eine Kraft haben, um zu lenken.
between angels and insects
 

Matthias

BeitragDo, Jul 13, 2006 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Im moment versuche ich das irgendwie auszupobieren.

Vieleicht hift der Quellcode an den ich gerade sitze ein wennig weiter.

Code: [AUSKLAPPEN]
Global ScrX=800,ScrY=600:Graphics ScrX,ScrY,32,2
Dim PX(10),PY(10)

PX(0)=100:PY(0)=300
PX(1)=150:PY(1)=250
PX(2)=200:PY(2)=200

PkMax=2:SetBuffer BackBuffer():Color 255,255,255

X=PX(1)-PX(0):Y=PY(1)-PY(0)
X1=PX(0)+X*.5:Y1=PY(0)+Y*.5

Ent=(X^2+Y^2)^.5

EE=Ent*.5:WX#=(X*1000)/Ent:WY#=(Y*1000)/Ent

NX=PX(0):NY=PY(0)
Cr=18000/Ent:CN=ATan2(PX(1)-X1,Y1-PY(1))

For Z=0 To Ent
NX=PX(0)+WX*Z*.001
NY=PY(0)+WY*Z*.001
C=Cr*Z*.01

SX=X1+Cos(CN+C)*EE
SY=Y1-Sin(CN+C)*EE
Plot SX,SY:Plot NX,NY:Next

AppTitle Ent+"  "+WX#+"  "+WY#+" "+CR+"  "+CN
Color 255,255,0:For Z=0 To PkMax:Oval PX(Z)-4,PY(Z)-4,9,9:Next

Repeat:Flip:Until KeyDown(1)=1:End
 

Matthias

Betreff: Himiter=Sch...

BeitragDo, Jul 13, 2006 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit der Himiter Funktion geht nicht wirklich. Bsp Dazu

Code: [AUSKLAPPEN]

Graphics 800,600,32,2
Dim PX(100),PY(100)
Dim DataPoint(6,1)
SeedRnd(5):MaxPk=6

PX(0)=100:PY(0)=300
PX(1)=150:PY(1)=250
PX(2)=200:PY(2)=200
PX(3)=250:PY(3)=150
PX(4)=300:PY(4)=100
PX(5)=350:PY(5)=300
PX(6)=400:PY(6)=400
;For Z=0 To MaxPk+1:PX(Z)=Z*50:PY(Z)=400-Rnd(250):Next
Repeat:SetBuffer BackBuffer():Cls:Color 255,0,0:Zeit=MilliSecs()

For Z = 0 To MaxPk-2
   For T# = 0 To 1.0 Step 0.001
       E#=T*T:F#=E*T
   A=PX(Z):B=PX(Z+1):C=PX(Z+2):D=PX(Z+3)
X=(2*F-3*E+1)*B+(F-2*E+T)*(B-A+C-B)*.5+(F-E)*(C-B+D-C)*.5+(-2*F+3*E)*C
       
    A=PY(Z):B=PY(Z+1):C=PY(Z+2):D=PY(Z+3)
Y=(2*F-3*E+1)*B+(F-2*E+T)*(B-A+C-B)*.5+(F-E)*(C-B+D-C)*.5+(-2*F+3*E)*C
        Plot X,Y
   Next
Next                             AppTitle MilliSecs()-Zeit

Color 255,255,0:For II=0 To MaxPK:Oval PX(II)-3,PY(II)-3,6,6,0:Next
Flip:Delay 10:Until KeyDown(1)=1:End
 

Matthias

Betreff: Problem gelöst

BeitragDo, Jul 13, 2006 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe Vertex sein Vorschlag ausprobiert und nach einigen versuchen
hat es so funktioniert wie ich es mir vorgestelt habe.

Nochmals vielen Dank Vertex

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group