2023年10月7日土曜日

20231008 十字の立方体











import bpy

# 十字の長さ
cross_length = 2

# 十字の幅
cross_width = 0.2

# 十字を描く関数
def draw_cross():
    # 十字の縦線を描く
    bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
    vertical_line = bpy.context.object
    vertical_line.scale[1] = cross_width
    vertical_line.name = "vertical_line"
    
    # 十字の横線を描く
    bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
    horizontal_line = bpy.context.object
    horizontal_line.scale[0] = cross_width
    horizontal_line.name = "horizontal_line"
    
    # 十字のもう1つの方向の線を描く
    bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
    depth_line = bpy.context.object
    depth_line.scale[2] = cross_width
    depth_line.name = "depth_line"
    
    # オレンジの色を設定
    orange_material = bpy.data.materials.new(name="オレンジ")
    orange_material.diffuse_color = (1, 0.5, 0, 1)  # RGB値でオレンジ色を設定
    vertical_line.data.materials.append(orange_material)
    horizontal_line.data.materials.append(orange_material)
    depth_line.data.materials.append(orange_material)

# 十字を描く
draw_cross()







十字の幅を0.04に設定し、現在の色の補色になるように調整



import bpy

# 十字の長さ
cross_length = 2

# 十字の幅
cross_width = 0.04

# 補色を計算する関数
def calculate_complementary_color(color):
    # 色の補色を計算
    complementary_color = (1.0 - color[0], 1.0 - color[1], 1.0 - color[2], 1.0)
    return complementary_color

# 十字を描く関数
def draw_cross():
    # 十字の縦線を描く
    bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
    vertical_line = bpy.context.object
    vertical_line.scale[1] = cross_width
    vertical_line.name = "vertical_line"
    
    # 十字の横線を描く
    bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
    horizontal_line = bpy.context.object
    horizontal_line.scale[0] = cross_width
    horizontal_line.name = "horizontal_line"
    
    # 十字のもう1つの方向の線を描く
    bpy.ops.mesh.primitive_cube_add(size=cross_length, location=(0, 0, 0))
    depth_line = bpy.context.object
    depth_line.scale[2] = cross_width
    depth_line.name = "depth_line"
    
    # 現在の色の補色を計算
    current_color = bpy.context.scene.world.node_tree.nodes['Background'].inputs['Color'].default_value
    complementary_color = calculate_complementary_color(current_color)
    
    # 補色を設定
    for obj in [vertical_line, horizontal_line, depth_line]:
        complementary_material = bpy.data.materials.new(name="補色")
        complementary_material.diffuse_color = complementary_color[:3]  # RGB値で補色を設定
        obj.data.materials.append(complementary_material)

# 十字を描く
draw_cross()






import bpy

# 立方体の辺の長さ
cube_size = 2

# 透明度が20%の水色で立方体を作成する関数
def create_cube():
    bpy.ops.mesh.primitive_cube_add(size=cube_size, location=(0, 0, 0))
    cube = bpy.context.object
    cube.name = "立方体"
    
    # 透明度が20%の水色のマテリアルを作成
    material = bpy.data.materials.new(name="水色透明")
    material.diffuse_color = (0, 0.5, 1, 0.2)  # RGBA値で水色と透明度を設定
    cube.data.materials.append(material)

# 立方体を作成
create_cube()








boolean






円柱 3つ



import bpy

# 円柱のパラメータ
cylinder_radius = 0.1  # 半径
cylinder_height = 2.0  # 高さ

# 円柱を作成する関数
def create_cylinder(rotation):
    bpy.ops.mesh.primitive_cylinder_add(radius=cylinder_radius, depth=cylinder_height, location=(0, 0, 0), rotation=rotation)
    cylinder = bpy.context.object
    cylinder.name = "円柱"
    return cylinder

# 姿勢を指定して円柱を作成
# x軸回転で作成
create_cylinder((1.5708, 0, 0))  # 1.5708 ラジアンは90度

# y軸回転で作成
create_cylinder((0, 1.5708, 0))  # 1.5708 ラジアンは90度

# z軸回転で作成
create_cylinder((0, 0, 1.5708))  # 1.5708 ラジアンは90度







import bpy

# 円柱のパラメータ
cylinder_radius = 0.1  # 半径
cylinder_height = 0.4  # 高さ

# 円柱を作成する関数
def create_cylinder(location, rotation):
    bpy.ops.mesh.primitive_cylinder_add(radius=cylinder_radius, depth=cylinder_height, location=location, rotation=rotation)
    cylinder = bpy.context.object
    cylinder.name = "円柱"
    return cylinder

# 姿勢を指定して円柱を作成
# x軸回転で作成
create_cylinder((0, 0, 0), (1.5708, 0, 0))  # 1.5708 ラジアンは90度

# y軸回転で作成
create_cylinder((0, 0, 0), (0, 1.5708, 0))  # 1.5708 ラジアンは90度

# z軸回転で作成
create_cylinder((0, 0, 0), (0, 0, 1.5708))  # 1.5708 ラジアンは90度





import bpy

# 円柱のパラメータ
cylinder_radius = 0.1  # 半径
cylinder_height = 0.4  # 高さ

# 円柱を作成する関数
def create_cylinder(location, rotation):
    bpy.ops.mesh.primitive_cylinder_add(radius=cylinder_radius, depth=cylinder_height, location=location, rotation=rotation)
    cylinder = bpy.context.object
    cylinder.name = "円柱"
    return cylinder

# 姿勢を指定して円柱を作成
# x軸回転で作成
create_cylinder((-1, 0, 0), (1.5708, 0, 0))  # 1.5708 ラジアンは90度

# y軸回転で作成
create_cylinder((-1, 0, 0), (0, 1.5708, 0))  # 1.5708 ラジアンは90度

# z軸回転で作成
create_cylinder((-1, 0, 0), (0, 0, 1.5708))  # 1.5708 ラジアンは90度



import bpy

# 円柱のパラメータ
cylinder_radius = 0.1  # 半径
cylinder_height = 0.4  # 高さ

# 円柱を作成する関数
def create_cylinder(location, rotation):
    bpy.ops.mesh.primitive_cylinder_add(radius=cylinder_radius, depth=cylinder_height, location=location, rotation=rotation)
    cylinder = bpy.context.object
    cylinder.name = "円柱"
    return cylinder

# 姿勢を指定して円柱を作成
# x軸回転で作成
create_cylinder((1, 0, 0), (1.5708, 0, 0))  # 1.5708 ラジアンは90度

# y軸回転で作成
create_cylinder((1, 0, 0), (0, 1.5708, 0))  # 1.5708 ラジアンは90度

# z軸回転で作成
create_cylinder((1, 0, 0), (0, 0, 1.5708))  # 1.5708 ラジアンは90度








@@@@@@@@@@@@@
捨て



blender python 


python blender  で 斜投影 の 見本を作って

Blenderを使用してPythonで斜投影の見本を作成するには、BlenderのPython APIを使用して3Dオブジェクトを作成し、適切な光源やカメラの設定を行います。以下は、簡単な例です。

まず、Blenderをスクリプトで制御できるようにするために、BlenderのPython APIをインポートします。そして、適切なカメラ、ライト、オブジェクトを作成し、斜投影を設定します。


import bpy
import math

# シーンのクリア
bpy.ops.wm.read_factory_settings(use_empty=True)

# メッシュの作成
bpy.ops.mesh.primitive_cube_add(size=2)

# カメラの作成
bpy.ops.object.camera_add(enter_editmode=False, align='VIEW', location=(0, -5, 3), rotation=(math.radians(60), 0, math.radians(45)))

# ライトの作成
bpy.ops.object.light_add(type='SUN', location=(2, -5, 5))
bpy.context.object.data.energy = 2.0

# 斜投影の設定
bpy.context.scene.camera.data.type = 'ORTHO'
bpy.context.scene.camera.data.ortho_scale = 3.0
bpy.context.scene.render.image_settings.file_format = 'PNG'
bpy.context.scene.render.filepath = "//output.png"

# レ



立方体の正方形の面に
幅 0.2 で 十字 cross を描いて




blender python

立方体 1辺2
中心 000

立方体を 厚さ 0 幅0.2のテープで
正方形 6面に
上下左右前後に貼る

正方形の中央に クロス croos になるように













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





 

基本系 配布 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 との対話 修正記録 と メモ・ノート


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