import bpy
import bmesh # Import the bmesh module
# 円の半径
radius = 6.0
# 3つの円の位置(指定地に配置する座標)を修正
positions = [
(-12, 0, 0),
(0, 0, 0),
(12, 0, 0)
]
# 3つの色を用意(より薄い青)
colors = [
(0.4, 0.8, 1.0, 1.0),
(0.3, 0.6, 1.0, 1.0),
(0.2, 0.4, 1.0, 1.0)
]
# 3つの円を作成し、位置と色を設定
for i, (position, color) in enumerate(zip(positions, colors)):
# 新しいメッシュを作成
mesh = bpy.data.meshes.new(f"CircleMesh_{i}")
obj = bpy.data.objects.new(f"Circle_{i}", mesh)
# シーンに追加
scene = bpy.context.scene
scene.collection.objects.link(obj)
# メッシュを作成
bm = bmesh.new()
bmesh.ops.create_circle(bm, cap_ends=True, cap_tris=False, segments=64, radius=radius)
bm.to_mesh(mesh)
bm.free()
# オブジェクトの位置を設定
obj.location = position
# マテリアルを作成しオブジェクトに割り当てる
mat = bpy.data.materials.new(name=f"Material_{i}")
mat.use_nodes = False # ノードを使用しない
mat.diffuse_color = color
obj.data.materials.append(mat)
改造
円の中心 000
円の半径
1
√3
2
で 作って
import bpy
import bmesh
# 円の半径
radii = [1.0, (3 ** 0.5), 2.0]
# 3つの円の位置(指定地に配置する座標)を修正
positions = [
(-12, 0, 0),
(0, 0, 0),
(12, 0, 0)
]
# 3つの色を用意(より薄い青)
colors = [
(0.4, 0.8, 1.0, 1.0),
(0.3, 0.6, 1.0, 1.0),
(0.2, 0.4, 1.0, 1.0)
]
# 3つの円を作成し、位置と色を設定
for i, (position, color) in enumerate(zip(positions, colors)):
radius = radii[i] # Get the corresponding radius for this circle
# 新しいメッシュを作成
mesh = bpy.data.meshes.new(f"CircleMesh_{i}")
obj = bpy.data.objects.new(f"Circle_{i}", mesh)
# シーンに追加
scene = bpy.context.scene
scene.collection.objects.link(obj)
# メッシュを作成
bm = bmesh.new()
bmesh.ops.create_circle(bm, cap_ends=True, cap_tris=False, segments=64, radius=radius)
bm.to_mesh(mesh)
bm.free()
# オブジェクトの位置を設定
obj.location = position
# マテリアルを作成しオブジェクトに割り当てる
mat = bpy.data.materials.new(name=f"Material_{i}")
mat.use_nodes = False # ノードを使用しない
mat.diffuse_color = color
obj.data.materials.append(mat)
import bpy
import bmesh
# 円の半径
radii = [1.0, (3 ** 0.5), 2.0]
# 3つの円の位置(指定地に配置する座標)を修正
positions = [
(0, 0, 0), # Set the center to (0, 0, 0)
(0, 0, 0), # Set the center to (0, 0, 0)
(0, 0, 0) # Set the center to (0, 0, 0)
]
# 3つの色を用意(より薄い青)
colors = [
(0.4, 0.8, 1.0, 1.0),
(0.3, 0.6, 1.0, 1.0),
(0.2, 0.4, 1.0, 1.0)
]
# 3つの円を作成し、位置と色を設定
for i, (position, color) in enumerate(zip(positions, colors)):
radius = radii[i] # Get the corresponding radius for this circle
# 新しいメッシュを作成
mesh = bpy.data.meshes.new(f"CircleMesh_{i}")
obj = bpy.data.objects.new(f"Circle_{i}", mesh)
# シーンに追加
scene = bpy.context.scene
scene.collection.objects.link(obj)
# メッシュを作成
bm = bmesh.new()
bmesh.ops.create_circle(bm, cap_ends=True, cap_tris=False, segments=64, radius=radius)
bm.to_mesh(mesh)
bm.free()
# オブジェクトの位置を設定
obj.location = position
# マテリアルを作成しオブジェクトに割り当てる
mat = bpy.data.materials.new(name=f"Material_{i}")
mat.use_nodes = False # ノードを使用しない
mat.diffuse_color = color
obj.data.materials.append(mat)
円の半径 5
中心 0,ー5,0
と
円の半径 2
中心 0,ー√3,0
と
円の半径 1
中心 0,-1,0
import bpy
import bmesh
# 円の半径
radii = [5.0, 2.0, 1.0]
# 3つの円の位置(指定地に配置する座標)を修正
positions = [
(0, -5, 0), # Center at (0, -5, 0) with a radius of 5
(0, -3**0.5, 0), # Center at (0, -√3, 0) with a radius of 2
(0, -1, 0) # Center at (0, -1, 0) with a radius of 1
]
# 3つの色を用意(ピンク、薄いから濃いへ、透明度 20%)
colors = [
(1.0, 0.7, 0.7, 0.2), # Light Pink
(1.0, 0.5, 0.5, 0.2), # Medium Pink
(1.0, 0.3, 0.3, 0.2) # Dark Pink
]
# 3つの円を作成し、位置と色を設定
for i, (position, color) in enumerate(zip(positions, colors)):
radius = radii[i] # Get the corresponding radius for this circle
# 新しいメッシュを作成
mesh = bpy.data.meshes.new(f"CircleMesh_{i}")
obj = bpy.data.objects.new(f"Circle_{i}", mesh)
# シーンに追加
scene = bpy.context.scene
scene.collection.objects.link(obj)
# メッシュを作成
bm = bmesh.new()
bmesh.ops.create_circle(bm, cap_ends=True, cap_tris=False, segments=64, radius=radius)
bm.to_mesh(mesh)
bm.free()
# オブジェクトの位置を設定
obj.location = position
# マテリアルを作成しオブジェクトに割り当てる
mat = bpy.data.materials.new(name=f"Material_{i}")
mat.use_nodes = False # ノードを使用しない
mat.diffuse_color = color
obj.data.materials.append(mat)
それぞれの円の中心に
球体を作る
半径 0.15
import bpy
import bmesh
# 円の半径
radii = [5.0, 2.0, 1.0]
# 3つの円の位置(指定地に配置する座標)を修正
positions = [
(0, -5, 0), # Center at (0, -5, 0) with a radius of 5
(0, -3**0.5, 0), # Center at (0, -√3, 0) with a radius of 2
(0, -1, 0) # Center at (0, -1, 0) with a radius of 1
]
# 3つの色を用意(ピンク、薄いから濃いへ、透明度 20%)
colors = [
(1.0, 0.7, 0.7, 0.2), # Light Pink
(1.0, 0.5, 0.5, 0.2), # Medium Pink
(1.0, 0.3, 0.3, 0.2) # Dark Pink
]
# 3つの円を作成し、位置と色を設定
for i, (position, color) in enumerate(zip(positions, colors)):
radius = radii[i] # Get the corresponding radius for this circle
# 新しいメッシュを作成
mesh = bpy.data.meshes.new(f"CircleMesh_{i}")
obj = bpy.data.objects.new(f"Circle_{i}", mesh)
# シーンに追加
scene = bpy.context.scene
scene.collection.objects.link(obj)
# メッシュを作成
bm = bmesh.new()
bmesh.ops.create_circle(bm, cap_ends=True, cap_tris=False, segments=64, radius=radius)
bm.to_mesh(mesh)
bm.free()
# オブジェクトの位置を設定
obj.location = position
# マテリアルを作成しオブジェクトに割り当てる
mat = bpy.data.materials.new(name=f"Material_{i}")
mat.use_nodes = False # ノードを使用しない
mat.diffuse_color = color
obj.data.materials.append(mat)
# 球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.15, location=position)
作ったった それぞれの 円中心に作った
球体のy成分 位置を使って
円の円周に 直径が交差するとこに
To create spheres with a radius of 0.15 at the points where the spheres' y-component intersects with the circle's circumference, we can modify the existing script to achieve that. Here's the updated code:
import bpy
import bmesh
import math
# 円の半径
radii = [5.0, 2.0, 1.0]
# 3つの円の位置(指定地に配置する座標)を修正
positions = [
(0, -5, 0), # Center at (0, -5, 0) with a radius of 5
(0, -3**0.5, 0), # Center at (0, -√3, 0) with a radius of 2
(0, -1, 0) # Center at (0, -1, 0) with a radius of 1
]
# 3つの色を用意(ピンク、薄いから濃いへ、透明度 20%)
colors = [
(1.0, 0.7, 0.7, 0.2), # Light Pink
(1.0, 0.5, 0.5, 0.2), # Medium Pink
(1.0, 0.3, 0.3, 0.2) # Dark Pink
]
# 3つの円を作成し、位置と色を設定
for i, (position, color) in enumerate(zip(positions, colors)):
radius = radii[i] # Get the corresponding radius for this circle
# 新しいメッシュを作成
mesh = bpy.data.meshes.new(f"CircleMesh_{i}")
obj = bpy.data.objects.new(f"Circle_{i}", mesh)
# シーンに追加
scene = bpy.context.scene
scene.collection.objects.link(obj)
# メッシュを作成
bm = bmesh.new()
bmesh.ops.create_circle(bm, cap_ends=True, cap_tris=False, segments=64, radius=radius)
bm.to_mesh(mesh)
bm.free()
# オブジェクトの位置を設定
obj.location = position
# マテリアルを作成しオブジェクトに割り当てる
mat = bpy.data.materials.new(name=f"Material_{i}")
mat.use_nodes = False # ノードを使用しない
mat.diffuse_color = color
obj.data.materials.append(mat)
# 球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.15, location=(position[0], position[1], position[2] + radius))
# y成分位置を使って円周上の位置を計算
circle_points = []
for angle in range(0, 360, 180):
x = position[0] + radius * math.cos(math.radians(angle))
z = position[2] + radius * math.sin(math.radians(angle))
circle_points.append((x, position[1], z))
# 円周上の位置に球体を作成
for point in circle_points:
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.15, location=point)
# 円の半径
radii = [5.0, 2.0, 1.0]
# 3つの円の位置(指定地に配置する座標)を修正
positions = [
(0, -5, 0), # Center at (0, -5, 0) with a radius of 5
(0, -3**0.5, 0), # Center at (0, -√3, 0) with a radius of 2
(0, -1, 0) # Center at (0, -1, 0) with a radius of 1
]
これを参考に 円の中心に 球体だけを作って
半径0.2
import bpy
import math
# 円の半径
radii = [5.0, 2.0, 1.0]
# 3つの円の位置(指定地に配置する座標)を修正
positions = [
(0, -5, 0), # Center at (0, -5, 0) with a radius of 5
(0, -3**0.5, 0), # Center at (0, -√3, 0) with a radius of 2
(0, -1, 0) # Center at (0, -1, 0) with a radius of 1
]
# 半径
sphere_radius = 0.2
# 3つの球体を作成し、位置と半径を設定
for i, position in enumerate(positions):
# 新しいメッシュを作成
mesh = bpy.data.meshes.new(f"SphereMesh_{i}")
obj = bpy.data.objects.new(f"Sphere_{i}", mesh)
# シーンに追加
scene = bpy.context.scene
scene.collection.objects.link(obj)
# 球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=sphere_radius, location=position)
# マテリアルを作成しオブジェクトに割り当てる
mat = bpy.data.materials.new(name=f"Material_{i}")
mat.use_nodes = False # ノードを使用しない
mat.diffuse_color = (1.0, 0.7, 0.7, 1.0) # ピンクの色
obj.data.materials.append(mat)
コレクションだけを作る
”5”
”√3”
”1”
”球体中心”
”観察者”
import bpy
# コレクションを作成する名前のリスト
collection_names = ["5", "√3", "1", "Sphere Centers", "Observer"]
# 各コレクションを作成
collections = []
for name in collection_names:
new_collection = bpy.data.collections.new(name)
collections.append(new_collection)
# シーンにコレクションを追加
scene = bpy.context.scene
for collection in collections:
scene.collection.children.link(collection)
あああ