Kurve zwischen Punkten
Übersicht

![]() |
joKeBetreff: Kurve zwischen Punkten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ne Mathematische Frage
Sagen wir mal ich hab von 2 Punkten die Koordinaten die auf der X - Achse 100 auseinander liegen .... nun will ich die beiden nicht mit einer Graden sondern geschwungen verbinden wie macht man sowas ?!? danke im vorraus , j0k3 |
||
Projekt: Pollux Renegades Coop
[Maschine: Intel DualCore2 2x 3Ghz | 4096 DRR2 | GeForce GTX 260 Ultra] |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
man könnte es mit sinus machen | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Boris0190 |
![]() Antworten mit Zitat ![]() |
---|---|---|
kommt drauf an, wie du die Kurfe haben willst. wenns ein einfacher Halbkreisbogen sein soll reicht sinus. Wenn nich, dann nimm ne Parabelgleichung. Meld dich, wennde mehr hilfe dazu brauchst, dann schreib ich was auf *G* | ||
If windows is the sollution, I want my problems back! -
The only way to have a friend is to be one |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Huhu J0k3,
Ich kann Dir eine Funktion anbieten, die ich mir mal erarbeitet habe, vielleicht kann die Dir ja irgendwie weiterhelfen. Code: [AUSKLAPPEN] Graphics 800, 600, 16, 2
Global start_x = 100 Global start_y = 300 Global steps = 1000 Repeat SetBuffer BackBuffer() : Cls For i = 0 To steps - 1 time# = (1.00 / steps) * i Plot bezierCurve#(start_x, start_x + 200, MouseX() - 200, MouseX(), time#), bezierCurve#(start_y, star_y - 200, MouseY() - 200, MouseY(), time#) Next time2# = (time2# + 0.01) Mod 1.00 Oval bezierCurve#(start_x, start_x + 200, MouseX() - 200, MouseX(), time2#) - 5, bezierCurve#(start_y, star_y - 200, MouseY() - 200, MouseY(), time2#) - 5, 10, 10 Flip Until KeyHit(1) : End ; -------------------------------------------------------------------------------------------------------------------------------------- ; errechnen einer Bezierkurve / Startpunkt / Startpunkt BCP / Endpunkt BCP / Endpunkt ; -------------------------------------------------------------------------------------------------------------------------------------- Function bezierCurve#(x1#, x2#, x3#, x4#, time#) Return (x1# * ((1 - time#) ^ 3)) + (x2# * 3 * time# * ((1 - time#) ^ 2)) + (x3# * 3 * (time# ^ 2) * (1 - time#)) + (x4# * (time# ^ 2)) End Function Zur Erklärung (falls ich mich jetzt noch genau erinnere): x1# und x4# sind die Endpunkte der Kurve. x2# und x3# sind die "Hilfspunkte", durch die die Kurve geht. time# ist die Position innerhalb der Kurve(0.0 = x1# / 1.0 = x4#) Der restliche Code ist nur eine Hilfe und soll die Anwendungweise demonstrieren. Müsstest halt einfach mal n bissel mit den Werten (vorallem halt x2# und x3#) rumprobieren! ![]() Liebe Grüsse ~+ Ava +~ |
||
![]() |
Boris0190 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mh hätt auch noch was, is allerdings ne symetrische Kurfe à la Sinus ![]() Code: [AUSKLAPPEN] Global a#,b#,x#,y#,c#
Graphics 800,600,16,1 SetBuffer BackBuffer() x=200 ;x Koordinate Erster Punkt y=280;x Koordinate zweiter Punkt While Not KeyHit (1) c=((y-x)/180);Wegen dem Sinus müssen alle Differenzen von x und y durch 180 geteilt werden (Einheitskreis) Cls Color 255,255,0 For a=1 To 180 ;Wegen Einheitskreis 180° Line (x-c)+(a*c),Sin(a-1)*b+x+50,x+(a*c),Sin(a)*b+x+50 ;Zwischen beiden Sinuswerten ne Linie malen Next If KeyDown(200) Then b=b-1 ;Wert für den Sinusmultiplikator verringern If KeyDown(208) Then b=b+1 ;Wert für den Sinusmultiplikator erhöhen If KeyDown(203) Then y=y-1 ;Den 2.Punkt nach links bewegen If KeyDown(205) Then y=y+1 ;Den 2.Punkt nach rechts bewegen Flip Wend Ich hoffe es hilft dir ![]() |
||
If windows is the sollution, I want my problems back! -
The only way to have a friend is to be one |
![]() |
joKe |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Kryan : watt heisst hier Trash ??? ... nicht so vorlaut mein lieber ^^
@Ava : Danke ... mal gucken was ich damit anfangen kann ... ist nicht 100% das was ich suche aber scchonmal ein anfang !!!! @Boris : Deins guck ich mir auch mal an , aber ymetrische Kurven ist eher schlecht |
||
Projekt: Pollux Renegades Coop
[Maschine: Intel DualCore2 2x 3Ghz | 4096 DRR2 | GeForce GTX 260 Ultra] |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
das ist meine signatur ![]() |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
...die du übrigens bitte entfernst. | ||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
andere haben auch so komische sigs, " ich schreibe auch "sigs:" hin, ok ![]() |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
b.l.i.t.z.b.a.s.e - gibts glaub bezier-codes im archiv | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://blitzbasic.com/codearcs...p?code=652
Weiss garnicht wo Markus noch seinen Hermitecode hat. mfg olli |
||
vertex.dreamfall.at | GitHub |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
@the Shadow
Schau mal was ich da oben gepostet habe... ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group