Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
kurse:efcomputergrafik:teil2:brainstorm [2019/11/17 14:41] Ivo Blöchliger [numpy] |
kurse:efcomputergrafik:teil2:brainstorm [2019/11/19 13:50] (current) Ivo Blöchliger [Intro] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Intro ====== | ||
+ | * meine Wenigkeit | ||
+ | * mein mickgriges Namensgedächtnis | ||
+ | * Warum Bezier-Kurven? | ||
+ | |||
====== Ziele ====== | ====== Ziele ====== | ||
* Physikalisch halbwegs realistische Achterbahn mit Blender | * Physikalisch halbwegs realistische Achterbahn mit Blender | ||
Line 4: | Line 9: | ||
====== Programm ====== | ====== Programm ====== | ||
+ | * Software auf Schulcomputern: | ||
* Demo mit Inkscape (https:// | * Demo mit Inkscape (https:// | ||
* Geometrische Definition | * Geometrische Definition | ||
Line 58: | Line 64: | ||
print(' | print(' | ||
+ | </ | ||
+ | |||
+ | ==== Generieren der Daten ==== | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | Working example, adapted to blender 2.8 from https:// | ||
+ | <code python> | ||
+ | import bpy | ||
+ | from mathutils import Vector | ||
+ | |||
+ | |||
+ | coordinates = [ | ||
+ | ((-1, 0, 0), (-0.7, 0, 0), (-1, 0.5521, 0)), | ||
+ | ((0, 1, 0), (-0.5521, 1, 0), (0, 0.7, 0)), | ||
+ | ((0, 0, 0), (0, 0.3, 0), (-0.3, 0, 0)) | ||
+ | ] | ||
+ | |||
+ | | ||
+ | def MakeCurveQuarter(objname, | ||
+ | curvedata = bpy.data.curves.new(name=curvename, | ||
+ | curvedata.dimensions = ' | ||
+ | | ||
+ | objectdata = bpy.data.objects.new(objname, | ||
+ | objectdata.location = origin | ||
+ | |||
+ | bpy.context.scene.collection.children[0].objects.link(objectdata) | ||
+ | | ||
+ | polyline = curvedata.splines.new(' | ||
+ | polyline.bezier_points.add(len(cList)-1) | ||
+ | |||
+ | for idx, (knot, h1, h2) in enumerate(cList): | ||
+ | point = polyline.bezier_points[idx] | ||
+ | point.co = knot | ||
+ | point.handle_left = h1 | ||
+ | point.handle_right = h2 | ||
+ | point.handle_left_type = ' | ||
+ | point.handle_right_type = ' | ||
+ | |||
+ | polyline.use_cyclic_u = True | ||
+ | | ||
+ | MakeCurveQuarter(" | ||
</ | </ | ||
Line 90: | Line 138: | ||
print(x) | print(x) | ||
</ | </ | ||
+ | |||
+ | ===== Video kodieren ===== | ||
+ | <code bash> | ||
+ | ffmpeg -r 30 -i %04d.png test.mkv | ||
+ | </ | ||
+ | Z.B. https:// |