blender python で
円柱を作る オブジェクト名 付けて
半径 0.1
両端が
2,0,-2 と
0,0,0
0,-2,-2 と
0,0,0
円柱 2本を 作って
# コレクションを作成
import bpy
collection_name = "時空 斜線 軌跡"
if collection_name not in bpy.data.collections:
zionad_collection = bpy.data.collections.new(collection_name)
bpy.context.scene.collection.children.link(zionad_collection)
else:
zionad_collection = bpy.data.collections[collection_name]
import bpy
import math
import mathutils
# オブジェクト名を指定
obj_name = "cylinder"
# 半径と高さを指定
radius = 0.1
height = 2
# 2つの座標を指定
p1 = mathutils.Vector((2, 0, -2))
p2 = mathutils.Vector((0, -2, -2))
# 座標の中心点を計算
center = (p1 + p2) / 2
# 2点間の距離を計算
distance = (p2 - p1).length
# 回転を計算
direction = (p2 - p1).normalized()
up = mathutils.Vector((0, 0, 1))
rotation = up.rotation_difference(direction).to_euler()
# 頂点座標を計算
vertices = []
for i in range(4):
angle = 2 * math.pi * i / 4
x = radius * math.cos(angle)
y = radius * math.sin(angle)
z = height
vertex = mathutils.Vector((x, y, z))
vertices.append(vertex)
# 座標を回転
for vertex in vertices:
vertex.rotate(rotation)
# 座標を移動
for vertex in vertices:
vertex += center
# メッシュを作成し、オブジェクトを作成
mesh = bpy.data.meshes.new(obj_name)
mesh.from_pydata(vertices, [], [(0, 1, 2), (0, 2, 3), (0, 3, 1), (1, 2, 3)])
mesh.update()
obj = bpy.data.objects.new(obj_name, mesh)
bpy.context.scene.collection.objects.link(obj)
obj.data.bevel_depth = radius