Wie erstelle ich simple Splines??

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Cedric30003

Betreff: Wie erstelle ich simple Splines??

BeitragMo, Jun 27, 2011 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Leute!!

Ich möchte in Zusammenarbeit mit PhillipB Splines erstellen, welche man auch aneinander anheften kann.
Wir möchten mit Hilfe einer Radiuseingabe den Winkel einer Spline fetslegen, desto niedriger der Wert, desto schärfer die Kurve.

Wäre soetwas umsetzbar?
Bis jetzt haben wir nur theoretische, aber keine praktische Arbeit verrichtet, da uns einfach der Weg fehlt, wie soetwas umzusetzen ist.

Am Ende sollen sie mit WayPoints verknüpft werden, so dass ein Objekt über den Nullgrad der Spline sich bewegt.


Wie setzt man soetwas um?

Danke im Voraus

MfG Cedric & PhillipB
Windows 7 Enterprise (x64) | AMD Athlon II X4 620 (4x2,61GHz) | 8GB RAM | nVIDIA GeForce 9500GT (1024MB)

ZEVS

Betreff: Splines

BeitragDi, Jun 28, 2011 11:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Als theorethische Arbeit setze ich mal vorraus, dass ihr immer für zwei aneinanderliegende Knoten eine Funktionsgleichung berechnet (was ihr mit Winkel und Radius meint, ist mir schleierhaft. Splines sind für mich aneinandergereihte Funktionen beliebigen Grades). Entsprechend könnt ihr in einer For-Schleife einfach jeden X-Wert überprüfen, die richtige Funktionsgleichung heraussuchen und den Y-Wert ermitteln. Bei der Objektanimation sind die Y-Werte genauso zu berechnen. Wenn ihr die Splines aneinandersetzen wollt, muss einfach immer der letze Knoten der vorhergehenden mit dem ersten der nächsten übereinstimmen.
Zwei Tipps:
Der Koordinatenursprung ist beim Zeichnen links oben. Entsprechend müssen die Y-Werte gespiegelt werden.

Ich (und ich denke viele andere auch) wusste nicht, was Splines überhaupt sind. Da Wikipedia immer sehr komprimiert ist, wäre eine allgemein verständlichere Problemschilderung immer besser


Ich hoffe, dass ich euch soweit helfen konnte

darth

BeitragDi, Jun 28, 2011 13:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Aufruf für die Worklog-Suchfunktion (nach Worten im Worklog) \o/ Würde wahrscheinlich die ganzen Suchergebnisse zerstören, weil zuviel Mist kommt, aber egal. Damit hättet ihr sowas gefunden:
https://www.blitzforum.de/worklogs/292/#2342

\o/ Splines \o/

MfG,
Darth
Diese Signatur ist leer.
 

Cedric30003

BeitragDi, Jun 28, 2011 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich meine soetwas

user posted image
http://upload.wikimedia.org/wi...lation.svg

Quelle: Wikipedia.org

Aber das ganze halt mit beispielsweise einer Straße (also das schwarze)
Windows 7 Enterprise (x64) | AMD Athlon II X4 620 (4x2,61GHz) | 8GB RAM | nVIDIA GeForce 9500GT (1024MB)

ZEVS

Betreff: Winkel und Radius

BeitragDi, Jun 28, 2011 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich sehe in der Grafik weder Winkel noch Radius, von denen die Rede war.
An sich reichen aber die gegeben Informationen (eigentlich ja nur die roten Knoten) nicht aus, um eine eindeutige Spline festzulegen. Bis das klar ist, sehe ich mich (und viele andere) außer stande, euch zu helfen.
Offsensichtlich hat darth aber ein vielversprechendes Framework gefunden.

BladeRunner

Moderator

BeitragDi, Jun 28, 2011 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
http://de.wikipedia.org/wiki/Spline
sollte dir ja schon bekannt sein, erläuternd dazu noch:
http://de.wikipedia.org/wiki/B%C3%A9zierkurve
Hier steht eigentlich alles was man dazu wissen muss, und es sollte daraus auch klar werden dass man bei Splines keine Radii angibt sondern eben Stützpunktewelche die Interpolationsbasis für den Kurvenverlauf darstellen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Sir Gauss der III

BeitragDi, Jun 28, 2011 22:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Als Denkanstoss, auch wenn es kein Spline ist, würde ich vollgendes Vorschlagen wenn es euch hauptsächlich um variabe Kurfen geht, die mit einer Strecke untereinander verbunden sind:

* Ihr zieht zwei Gerade, die im gewünschten winkel zueinander verlaufen ( < ).
* Zu den beiden erstellt ihr je eine Parallele nach innen versetzt mit dem Abstand des gewünschten Radius. ( << )
* Schnittpunkt der innenliegenden geraden ist der Mittelpunkt des Kreises
* Gerade und kreise werden zu ihren Berührungspunkten gekürzt (innenliegende Geraden löschen)
usw.



viel einfacher wäre, wenn ihr veorgefertigte Bauelemente nehmt und die Landschaft in ein Raster unterteilt. dann habt ihr definierte start und endpunkte jedes bauteils und fügt diese nur noch zusammen.


gruß Sir Gauss
 

Cedric30003

BeitragDo, Jun 30, 2011 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
@Sir Gauss der III:

Könntest du es vielleicht einmal grafisch darstellen, da ich deine Antwort mir nicht wirklich vorstellen kann.

Danke im Voraus

Cedric A.
Windows 7 Enterprise (x64) | AMD Athlon II X4 620 (4x2,61GHz) | 8GB RAM | nVIDIA GeForce 9500GT (1024MB)

The Shark

BeitragDo, Jun 30, 2011 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich sowohl Zeit als auch Lust hatte: Bitteschön
Mit d kannst den radius verändern.

PhillipB

BeitragDo, Jun 30, 2011 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank dafür aber das löst leider unser Problem nicht da wir das ja in auswirkung von 3d objekten haben wollen.
Wir wollen auch nicht viele Objekte erstellen das wäre echt zu viel Aufwand.
Diese Spline sollte aus einem Grundobjekt besten was zusammen gerückt wird je nach Eingabe.

mfg
PhillipB.

Sir Gauss der III

BeitragFr, Jul 01, 2011 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs mal schnell skizziert.

user posted image
Legende:
Schwarz = Gerade, später gerade Wegteile
Gelb = Kreis, Später Wegkurfen
Rot = Parallele zum Weg
Blau = Abstand der Paralelle (gleiches Maß ( Radius des kreises))
Grün = Schnittpunkt der Paralellen und Mittelpunkt Kreis

Dann gilt es noch, Kreis und Geraden richtig zu kürzen damit sie sich verbinden. PÜunkte auf dem kreis (als Wegpunkte) können über dessen Radius einfach verteilt werden.

Naja, und ne Rückmeldung ob ihr es so anwendet oder nicht bzw. obs half wäre interessant.

gruß Sir Gauss


Edit:
ich fände es immer noch sinnvoller vorgefertigte Elemente zu nutzen (viertelskreis, Halbkreis, gerade mit start und endpunkten, S kurfen ...) und diese über einzelne Wegpunkte und verschiedene Größen eingeben.

PhillipB

BeitragFr, Jul 01, 2011 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Sir Gauss der III
Ja das hat uns schon etwas gebracht doch jetzt die Frage ob es eine einfache Möglichkeit gibt das man irgentwie aus einem kurzen Stück dann so einen Kreis formt.
Also das das programm aus einer geraden (3d Modell) eine Kurve erstellt mit den Radien ....

mfg
PhillipB.
STRINGS - Einige tragen sie|wir programmieren sie! Very Happy
  • Zuletzt bearbeitet von PhillipB am Mo, Jul 04, 2011 21:48, insgesamt einmal bearbeitet
 

Cedric30003

BeitragSo, Jul 03, 2011 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
@Sir Gauss der III: Erstmal Danke, dass du dir die Mühe gemacht hast, das alles so aufzuzeichnen, das Prinzip ist mir jetzt einigermaßten klar.

Da es ja keine andere Lösung gibt, werden uns wohl an vorgefertigten Objekten orientieren müssen

@PhillipB Es heißt Kurve
Windows 7 Enterprise (x64) | AMD Athlon II X4 620 (4x2,61GHz) | 8GB RAM | nVIDIA GeForce 9500GT (1024MB)

Sir Gauss der III

BeitragMo, Jul 04, 2011 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, ein 3d Modell zu ändern geht schon. ich habe mich jetzt noch nicht direkt mit befasst, daher ist jetzt alles mal etwas unsicher was ich so in den Raum werfe.

mit dem Befehl TriangleVertex können die einzelnen Vertexpunkte (ecken der Dreiecke eines mesh) gewählt werden, mit VertexCoords können sie verschoben werden.

In der Theorie würde ich nun so vorgehen, dass ich wie oben beschrieben eine Kurve erstelle. auf dieser Kurve verteile ich nun, ganz gleich wie lang sie ist, eine bestimmte Anzahl an punkte (z.B. 10).
nun verschiebe ich von meinem Straßen\Schienenmesh meine Vertexpunkte zu den Kurvenpunkte.

Nun, obs so geht sei mal dahin gestellt.

gruß Sir Gauss

PhillipB

BeitragFr, Jul 08, 2011 12:58
Antworten mit Zitat
Benutzer-Profile anzeigen
So in etwa verstehe ich das gibt es einen Beispiel code für soetwas?

mfg
PhillipB.
STRINGS - Einige tragen sie|wir programmieren sie! Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group