3D Grafiken berechnen - Problem beim Matrixformen
-
Hi zusammen,
ich habe folgendes Problem:
für die Schule schreibe ich ein Programm, dass eine 3D Matrix berechnen soll. Ausschauen soll das ganze einmal so:http://img5.abload.de/img/matrix4nvi.jpg
Die einzelnen Werte für diese Matrix stehen ein einem Array:
float fMatrix[100][100][100];
Soll heißen ich geh mit for-schleifen die x und z werte durch. der standard y wert ist meinetwegen 0.5 in der ebene. wenn jetzt ein y-wert von 1.0 in einem punkt auftaucht, dann soll die matrix nicht einfach von 0.5 auf 1.0 springen, sondern wie auf dem bild soll es einen gleitenden übergang nach oben geben. (hat evtl irgendwas mit einem gauss-algorithmus zu tun?)
ich hoffe ich hab mich verständlich ausgedrückt
vielleicht kann mir ja jemand helfen.mfg
purplediamond
-
-
vielen dank, genau das was ich gesucht hab. muss nur noch durchblicken wie ich das umsetzen kann
-
vielleicht schaust du dir auch distance function an, z.b.
z.b.
http://www.flipcode.com/archives/Fast_Approximate_Distance_Functions.shtml
-
Es geht eventuell auch noch einfacher, wenn du nur die Form nachahmen sollst. Wenn du die xz Koordinaten der "Polstellen" kennst, kannst du einfach von jedem Vertex die Distanz zu den Polstellen errechnen und dann Abhängig von der Distanz die Höhe mit einer passenden Funktion errechnen. Die Formen deiner 2 Hügel könnte man z.B. mit einer e-Funktion (e^(-ax)) nachbilden.
-
jo danke. glaub das hat rapso auch gemeint. ich tüftel mal ein bisschen rum, sobald ich was brauchbares hab poste ich es hier.
danke erstmal für die antworten
falls jemand noch ne idee hat, immer rausdamit!mfg
-
naja, falls du der spline idee nachgehen moechtest, in einer dimension mehr heisst das bezier patch.
http://www.nbb.cornell.edu/neurobio/land/OldStudentProjects/cs490-96to97/anson/BezierPatchApplet/@this->that
nachmacher
-
rapso schrieb:
naja, falls du der spline idee nachgehen moechtest, in einer dimension mehr heisst das bezier patch.
http://www.nbb.cornell.edu/neurobio/land/OldStudentProjects/cs490-96to97/anson/BezierPatchApplet/Anmerkung: Ein Bezier Patch ist nicht eine Spline in 3D, sondern EIN Splinetyp im Raum (genauso wie eine Beziér Kurve nur einer von vielen Kurventypen ist, um eine Spline zu bauen). Es gibt zahlreiche weitere wie Hermite-Patches, Catmull-Rom-Surfaces etc.
rapso schrieb:
@this->that
nachmacherSorry, hab den Artikel in deinem Link nicht angeklickt und wusste nicht, dass meine Idee einen Namen hat. ^^