Bogen Berechnen
Übersicht

MatthiasBetreff: Bogen Berechnen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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.
Hoffe mir kann jemand helfen. ~EDIT~ SO, die Leute wollen ja auch was sehen. Skizze eingefügt. Jan_ |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
MatthiasBetreff: Himiter=Sch... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
MatthiasBetreff: Problem gelöst |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habe Vertex sein Vorschlag ausprobiert und nach einigen versuchen
hat es so funktioniert wie ich es mir vorgestelt habe. Nochmals vielen Dank Vertex |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group