2023年7月8日土曜日

20320709  正式版 原点 正面窓 Y軸 90度回転




# 原点 正面窓 Y軸 90度回転

import bpy

import math


radius_list = [1, math.sqrt(2)/2, math.sqrt(3)/2, math.sqrt(2), math.sqrt(3), 2]

height = 0.005



for radius in radius_list:

    bpy.ops.mesh.primitive_cylinder_add(

        radius=radius,

        depth=height,

        location=(0, 0, 0)

    )


    obj = bpy.context.active_object

    bpy.context.view_layer.objects.active = obj

    obj.select_set(True)


    obj.name = f"原点 窓{radius}"


    bpy.ops.object.origin_set(type='ORIGIN_CENTER_OF_MASS', center='BOUNDS')


    bpy.ops.transform.rotate(value=math.radians(90), orient_axis='Y')








コレクションだけを作る

名前は

”単位円 円周トーラス"
”原点 円柱"
”窓面 円柱"
”実物 円柱"

”原点 数学 XY 円柱円板"
”原点 正面窓 YZ 円柱円板"
”原点 土台 ZX 円柱円板"

”窓面 数学 XY 円柱円板"
”窓面 正面窓 YZ 円柱円板"
”窓面 土台 ZX 円柱円板"

”実物 数学 XY 円柱円板"
”実物 正面窓 YZ 円柱円板"
”実物 土台 ZX 円柱円板"



あああああ



20230709 天球 三角測量 円柱で薄い円板 作る 

 


円柱で円板を複数作る


半径1


半径 √2/2


半径 √3/2


半径√2


半径√3


半径 2


中心   1,0,0








#原点側面 円柱 薄い円板

import bpy

import math



# 円柱の半径と高さのリスト

radius_list = [1, math.sqrt(2)/2, math.sqrt(3)/2, math.sqrt(2), math.sqrt(3), 2]

height = 0.005


# 色と透明度の設定

color = (0.5, 0, 0, 0.3)  # 薄い赤色 (RGBA形式)


# 側面のコレクションを作成

for radius in radius_list:

    # 円柱を作成

    bpy.ops.mesh.primitive_cylinder_add(

        radius=radius,

        depth=height,

        location=(0, 0, 0)

    )

    

    # オブジェクトを選択

    obj = bpy.context.active_object

    bpy.context.view_layer.objects.active = obj

    obj.select_set(True)

    

    # 名前を設定

    obj.name = f"原点側面 {radius}"

    



#原点窓 正面 円柱 薄い円板

import bpy

import math



# 円柱の半径と高さのリスト

radius_list = [1, math.sqrt(2)/2, math.sqrt(3)/2, math.sqrt(2), math.sqrt(3), 2]

height = 0.005




# 側面のコレクションを作成

for radius in radius_list:

    # 円柱を作成

    bpy.ops.mesh.primitive_cylinder_add(

        radius=radius,

        depth=height,

        location=(0, 0, 0)

    )

    

    # オブジェクトを選択

    obj = bpy.context.active_object

    bpy.context.view_layer.objects.active = obj

    obj.select_set(True)

    

    # 名前を設定

    obj.name = f"原点窓 正面 {radius}"

    




# 窓 側面 XY平面 円柱円板

import bpy

import math



# 円柱の半径と高さのリスト

radius_list = [1, math.sqrt(2)/2, math.sqrt(3)/2, math.sqrt(2), math.sqrt(3), 2]

height = 0.005


# 色と透明度の設定

color = (0.5, 0, 0, 0.3)  # 薄い赤色 (RGBA形式)


# 側面のコレクションを作成

for radius in radius_list:

    # 円柱を作成

    bpy.ops.mesh.primitive_cylinder_add(

        radius=radius,

        depth=height,

        location=(1, 0, 0)

    )

    

    # オブジェクトを選択

    obj = bpy.context.active_object

    bpy.context.view_layer.objects.active = obj

    obj.select_set(True)

    

    # 名前を設定

    obj.name = f"”窓 側面 {radius}"

    



# 窓 正面 YZ平面 円柱円板

import bpy

import math



# 円柱の半径と高さのリスト

radius_list = [1, math.sqrt(2)/2, math.sqrt(3)/2, math.sqrt(2), math.sqrt(3), 2]

height = 0.005


# 色と透明度の設定

color = (0.5, 0, 0, 0.3)  # 薄い赤色 (RGBA形式)


# 側面のコレクションを作成

for radius in radius_list:

    # 円柱を作成

    bpy.ops.mesh.primitive_cylinder_add(

        radius=radius,

        depth=height,

        location=(1, 0, 0)

    )

    

    # オブジェクトを選択

    obj = bpy.context.active_object

    bpy.context.view_layer.objects.active = obj

    obj.select_set(True)

    

    # 名前を設定

    obj.name = f"”窓 正面 {radius}"

    








ああああ

20230709 sun 天球 三角測量

 







blender python 

半径1のトーラスを作る

オブジェクトに名前を付ける


マイナー半径 0.05

トーラスの中心位置 000




# トーラス 半径1円周


import bpy


# トーラスを作成

bpy.ops.mesh.primitive_torus_add(

    align='WORLD',

    location=(0, 0, 0),

    rotation=(0, 0, 0),

    major_radius=1,

    minor_radius=0.01,

    major_segments=48,

    minor_segments=24

)


# 作成したオブジェクトに名前を付ける

obj = bpy.context.active_object

obj.name = "MyTorus"




追加のトーラスを作る

x軸を回転軸にして 90度回転





# xz 平面の 単位円 円周トーラス

import bpy

import math


# トーラスを作成

bpy.ops.mesh.primitive_torus_add(

    align='WORLD',

    location=(0, 0, 0),

    rotation=(0, 0, 0),

    major_radius=1,

    minor_radius=0.01,

    major_segments=48,

    minor_segments=24

)


# 作成したオブジェクトに名前を付ける

obj = bpy.context.active_object

obj.name = "MyTorus"


# 追加のトーラスを作成

bpy.ops.object.duplicate(linked=False)


# 回転を設定

rotation_rad = math.radians(90)  # 90度をラジアンに変換

bpy.context.active_object.rotation_euler = (rotation_rad, 0, 0)




太さ 0.05 で 円柱を 2つ作る

円柱長さ 1


円柱中心軸の中心は 1,1,0 と 1,0,0 の中間

円柱中心軸の中心は 1,-1,0 と 1,0,0 の中間位置


x軸を回転軸にして 90度回転




# 被写体 円柱

import bpy

import math


# 円柱を作成する関数

def create_cylinder(center_point, end_point, index):

    # 中心点と終点の座標から方向ベクトルと長さを計算

    direction = [end_point[i] - center_point[i] for i in range(3)]

    length = sum([i**2 for i in direction])**0.5


    # 円柱を作成

    bpy.ops.mesh.primitive_cylinder_add(

        align='WORLD',

        location=(center_point[0] + direction[0] / 2, center_point[1] + direction[1] / 2, center_point[2] + direction[2] / 2),

        depth=length,

        rotation=(math.pi/2, 0, 0),  # x軸を回転軸にして90度回転

        radius=0.015

    )


    # 作成した円柱に連番の名前を付ける

    obj = bpy.context.active_object

    obj.name = "Cylinder{}".format(index)


# 円柱1の中心軸の中間位置の座標

center_point_1 = ((1 + 1) / 2, (1 + 0) / 2, 0)

end_point_1 = (1, 0, 0)


# 円柱1を作成

create_cylinder(center_point_1, end_point_1, 1)


# 円柱2の中心軸の中間位置の座標

center_point_2 = ((1 + 1) / 2, (-1 + 0) / 2, 0)

end_point_2 = (1, 0, 0)


# 円柱2を作成

create_cylinder(center_point_2, end_point_2, 2)






円柱で円板を複数作る

半径1

半径 √2/2

半径 √3/2

半径√2

半径√3

半径 2

中心   1,0,0


色を塗れるように

マテリアルをrgba で設定






コレクションを作る

名前は

”単位円 円周トーラス"
”原点 円柱"
”窓面 円柱"
”実物 円柱"

”原点 数学 XY 円柱円板"
”原点 正面窓 YZ 円柱円板"
”原点 土台 ZX 円柱円板"

”窓面 数学 XY 円柱円板"
”窓面 正面窓 YZ 円柱円板"
”窓面 土台 ZX 円柱円板"

”実物 数学 XY 円柱円板"
”実物 正面窓 YZ 円柱円板"
”実物 土台 ZX 円柱円板"






”立方体 表面 red100"
”球体 内部 blue1000"
”球体 内部 red100"
”球体 表面 blue1000"






import bpy

”単位円 円周トーラス"
cube_inner_blue_collection = bpy.data.collections.new(”単位円 円周トーラス")
bpy.context.scene.collection.children.link(cube_inner_blue_collection)

# 立方体内部の赤いオブジェクト用コレクションの作成
cube_inner_red_collection = bpy.data.collections.new("立方体 内部 red100")
bpy.context.scene.collection.children.link(cube_inner_red_collection)

# 立方体表面の青いオブジェクト用コレクションの作成
cube_surface_blue_collection = bpy.data.collections.new("立方体 表面 blue1000")
bpy.context.scene.collection.children.link(cube_surface_blue_collection)

# 立方体表面の赤いオブジェクト用コレクションの作成
cube_surface_red_collection = bpy.data.collections.new("立方体 表面 red100")
bpy.context.scene.collection.children.link(cube_surface_red_collection)

# 球体内部の青いオブジェクト用コレクションの作成
sphere_inner_blue_collection = bpy.data.collections.new("球体 内部 blue1000")
bpy.context.scene.collection.children.link(sphere_inner_blue_collection)

# 球体内部の赤いオブジェクト用コレクションの作成
sphere_inner_red_collection = bpy.data.collections.new("球体 内部 red100")
bpy.context.scene.collection.children.link(sphere_inner_red_collection)

# 球体表面の青いオブジェクト用コレクションの作成
sphere_surface_blue_collection = bpy.data.collections.new("球体 表面 blue1000")
bpy.context.scene.collection.children.link(sphere_surface_blue_collection)

# 球体表面の赤いオブジェクト用コレクションの作成
sphere_surface_red_collection = bpy.data.collections.new("球体 表面 red100")
bpy.context.scene.collection.children.link(sphere_surface_red_collection)









ああああ