2023年4月22日土曜日

20230423 sun 球体 複数と 光行差

 







blendr python で


半径0.2 の球体を作成

オブジェクト名は zion_ball = "x_ball"


球体中心は (x,0,0)


xは ー10から+10の21位置


描いて



import bpy

import mathutils


# 半径0.2の球体を作成

bpy.ops.mesh.primitive_uv_sphere_add(radius=0.2)


# オブジェクト名を設定

bpy.context.object.name = "x_ball"


# 球体を各x座標に配置

for x in range(-10, 11):

    # 球体を複製して新しいオブジェクトを作成

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

    new_obj = bpy.context.object

    

    # 新しいオブジェクトのオブジェクト名を設定

    new_obj.name = "x_ball_{0}".format(x)

    

    # 新しいオブジェクトを移動するベクトルを作成

    translate_vec = mathutils.Vector((x, 0, 0))

    

    # 新しいオブジェクトを移動

    new_obj.location = translate_vec




20230422 bbb 半径2に修正

 




https://polyhaven.com/a/sandsloot



#あああああああああああああああああああああ 


import bpy


# カメラの位置を変更する

bpy.data.objects['Camera'].location = (0, 10, 0)


# ライトの位置を変更する

bpy.data.objects['Light'].location = (0, 10, 1)




#あああああああああああああああああああああ 






20230422 sat ビデオ会議の構造 test版 半径√3へ 修正へ

 


blender python で

半径1の球体を 作る

中心は000


y<0の部分と

y>=0の部分に別ける


2つの部分にオブジェクト名を付ける




Y>=0 の 半分の球体と Y<=0 の 半分の球体を描いて オブジェクト名も付ける





import bpy

import bmesh

import mathutils

import math


# Y>=0 の半分の球体を作成する

bpy.ops.mesh.primitive_uv_sphere_add(location=(0, 0, 0.5), radius=0.5, segments=32, ring_count=16)

half_sphere_top = bpy.context.active_object

half_sphere_top.name = "Half Sphere Top"


# Y<=0 の半分の球体を作成する

bpy.ops.mesh.primitive_uv_sphere_add(location=(0, 0, -0.5), radius=0.5, segments=32, ring_count=16)

half_sphere_bottom = bpy.context.active_object

half_sphere_bottom.name = "Half Sphere Bottom"


# 2つのオブジェクトを結合する

bpy.context.view_layer.objects.active = half_sphere_bottom

bpy.ops.object.mode_set(mode='EDIT')

bm = bmesh.from_edit_mesh(bpy.context.object.data)

bm.select_mode = {'VERTEX'}

bm.select_flush(mode='VERT')

bm.select_all(action='SELECT')

bpy.ops.mesh.delete(type='VERT')

bpy.ops.object.mode_set(mode='OBJECT')


bpy.ops.object.select_all(action='DESELECT')

half_sphere_top.select_set(True)

half_sphere_bottom.select_set(True)

bpy.context.view_layer.objects.active = half_sphere_top

bpy.ops.object.join()


# オブジェクトを選択する

bpy.context.view_layer.objects.active = bpy.context.selected_objects[0]