2023年9月28日木曜日

20230929 観測と観察の 正面 視線距離



blender python 


トーラスを作る

半径1 薄い青

マイナー半径 0.05

RGBA 4値で 色を付ける










import bpy


# トーラスを作成

bpy.ops.mesh.primitive_torus_add(

    align='WORLD',

    location=(0, 0, 0),    # トーラスの中心の座標

    rotation=(0, 0, 0),    # トーラスの回転

    major_radius=2,        # 半径

    minor_radius=0.03      # マイナー半径

)


# トーラスの名前を設定

torus_object = bpy.context.active_object

torus_object.name = "Torus_radius=2"  # 名前を設定


# トーラスのマテリアルを作成

material = bpy.data.materials.new(name="Radius2Material")

material.use_nodes = False  # ノードを使用しない


# 色を指定(RGBA) - もう少し濃い水色

material.diffuse_color = (0.2, 0.4, 1, 1)


# トーラスにマテリアルを割り当て

torus_object.data.materials.append(material)






import bpy

import math


# 半径

radius = 2


# 正六角形の頂点座標を計算

vertices = []

for i in range(6):

    angle = i * math.pi / 3  # 60度ごとに頂点を配置

    x = radius * math.cos(angle)

    y = radius * math.sin(angle)

    z = 0

    vertices.append((x, y, z))


# 新しいメッシュを作成

mesh = bpy.data.meshes.new(name="正六角形_r=2_mesh")

obj = bpy.data.objects.new("正六角形_r=2", mesh)


# メッシュデータに頂点座標を設定

mesh.from_pydata(vertices, [], [(0, 1, 2, 3, 4, 5)])


# シーンに追加

scene = bpy.context.scene

scene.collection.objects.link(obj)


# オブジェクトをアクティブに設定

bpy.context.view_layer.objects.active = obj

obj.select_set(True)


# マテリアルを作成

material = bpy.data.materials.new(name="水色Material")

material.use_nodes = False

material.diffuse_color = (0.5, 0.8, 1.0, 1.0)  # RGBA


# オブジェクトにマテリアルを割り当て

obj.data.materials.append(material)








(-10,2,0) から (10,2,0)を
長さにする円柱を作る
円柱半径 0.02

名前は y軸の数値を使って 線路y=2









import bpy

import math


# 座標と半径を設定

start_point = (-10, 2, 0)

end_point = (10, 2, 0)

cylinder_radius = 0.02


# 高さを計算

cylinder_height = end_point[0] - start_point[0]


# 位置と回転を計算

location = ((start_point[0] + end_point[0]) / 2, (start_point[1] + end_point[1]) / 2, (start_point[2] + end_point[2]) / 2)

rotation = (0, math.pi / 2, 0)  # y軸で90度回転


# 円柱を作成

bpy.ops.mesh.primitive_cylinder_add(

    radius=cylinder_radius,

    depth=cylinder_height,

    location=location,

    rotation=rotation

)


# オブジェクトを取得

cylinder_object = bpy.context.active_object


# オブジェクトの名前を設定

cylinder_object.name = f"Rail_y={start_point[1]}"


# マテリアルを作成

material = bpy.data.materials.new(name="SilverPurpleMaterial")

material.use_nodes = False


# 銀色と紫色を混ぜる色を指定(RGBA)

silver_color = (0.8, 0.8, 0.8, 1.0)

purple_color = (0.5, 0.2, 0.8, 1.0)  # 例: 紫色

mixed_color = [(s + p) / 2 for s, p in zip(silver_color, purple_color)]


# 色を指定

material.diffuse_color = mixed_color


# オブジェクトにマテリアルを割り当て

cylinder_object.data.materials.append(material)





半径0.3の球体を作る

名前は 位置の数字で

x=a y=b z=c

作成位置は

(x,y,z)=

0,0,0

-2,2,0

0,2,0

2,2,0

-1,1,0

0,1,0

1,1,0







import bpy


# 球体を作成する位置のリスト

positions = [

    (0, 0, 0),

    (-2, 2, 0),

    (0, 2, 0),

    (2, 2, 0),

    (-1, 1, 0),

    (0, 1, 0),

    (1, 1, 0)

]


# 球体の半径

sphere_radius = 0.05


# 球体を作成

for i, pos in enumerate(positions):

    bpy.ops.mesh.primitive_uv_sphere_add(

        radius=sphere_radius,

        location=pos

    )


    # オブジェクトの名前を設定

    bpy.context.active_object.name = f"Sphere_{i}_x={pos[0]}_y={pos[1]}_z={pos[2]}"


    # マテリアルを作成

    material = bpy.data.materials.new(name=f"BlueMaterial_{i}")

    material.use_nodes = False


    # 色を指定(RGBA) - 青色

    material.diffuse_color = (0.0, 0.0, 1.0, 1.0)


    # オブジェクトにマテリアルを割り当て

    bpy.context.active_object.data.materials.append(material)








 

基本系 配布 001 単位円 torus と xyz軸 円柱

https://drive.google.com/file/d/1adh0pC0n5MUfaPnsQcab8CnTvHu_JqLg/view?usp=drive_link

 

基本系 配布 002 単位2長さ balls

https://drive.google.com/file/d/1vyg5oFWmw_TK8nwp5TmVSfLH94I6rTaY/view?usp=drive_link

 

基本系 配布 003 単位2長さ balls 光時計セット 

https://drive.google.com/file/d/1u2Rn_nVBcewe39Vokua9C5n25cdivyyL/view?usp=drive_link

 

blender 基本系 配布 カタログ 2023 - zionad_mainのブログ https://mokuji000zionad.hatenablog.com/entry/2023/07/31/095208 






以下 ChatGPT との対話 修正記録 と メモ・ノート


ああああああああああああああああああああああああああああああああああああああああああああ