2023年3月22日水曜日

円周に 球体 等間隔 配置

aaa






import bpy
import math

# オブジェクトを作成する関数
def create_sphere(location, radius):
    bpy.ops.mesh.primitive_uv_sphere_add(location=location, radius=radius)

# 16個の球体を作成する
for i in range(16):
    angle = 2 * i * math.pi / 16
    x = 30 * math.cos(angle)
    y = 30 * math.sin(angle)
    z = 0
    location = (x, y, z)
    radius = 1
    create_sphere(location, radius)











# 16個の球体を10秒間で座標(0, 0, 0)に移動するBlender Pythonスクリプト


import bpy
import math

# オブジェクトを作成する関数
def create_sphere(location, radius):
    bpy.ops.mesh.primitive_uv_sphere_add(location=location, radius=radius)

# アニメーションを設定する関数
def set_animation(obj, start_frame, end_frame, target_location):
    obj.keyframe_insert(data_path="location", frame=start_frame)
    obj.location = target_location
    obj.keyframe_insert(data_path="location", frame=end_frame)

# 16個の球体を作成する
for i in range(16):
    angle = 2 * i * math.pi / 16
    x = 30 * math.cos(angle)
    y = 30 * math.sin(angle)
    z = 0
    location = (x, y, z)
    radius = 1
    create_sphere(location, radius)
    obj = bpy.context.active_object
    set_animation(obj, 1, 250, (0, 0, 0))



# 座標(0, 0, 0)から円周上に16個の球体を移動させるBlender Pythonスクリプト

import bpy
import math

# オブジェクトを作成する関数
def create_sphere(location, radius):
    bpy.ops.mesh.primitive_uv_sphere_add(location=location, radius=radius)

# アニメーションを設定する関数
def set_animation(obj, start_frame, end_frame, target_location):
    obj.keyframe_insert(data_path="location", frame=start_frame)
    obj.location = target_location
    obj.keyframe_insert(data_path="location", frame=end_frame)

# 16個の球体を作成する
for i in range(16):
    angle = 2 * i * math.pi / 16
    x = 30 * math.cos(angle)
    y = 30 * math.sin(angle)
    z = 0
    location = (0, 0, 0)
    radius = 1
    create_sphere(location, radius)
    obj = bpy.context.active_object
    set_animation(obj, 1, 250, (x, y, z))

















このスクリプトでは、16個の球体を作成し、各球体に対してアニメーションを設定しています。create_sphere関数は、以前の例と同様に球体を作成するための関数です。

set_animation関数は、オブジェクトのアニメーションを設定するための関数です。この関数は、オブジェクト、アニメーションの開始フレーム、終了フレーム、目標座標を引数として受け取ります。この関数では、最初にオブジェクトの現在位置をキーフレームに登録し、その後に目標座標に移動して再度キーフレームに登録します。

最後に、16個の球体に対して、それぞれアニメーションを設定しています。各オブジェクトは、アクティブオブジェクトとしてコンテキストから取得し、set_animation関数を呼び出すことでアニメーションを設定しています。アニメーションの開始フレームは1、終了フレームは250としています。また、目標座標は円周上の座標として計算し、location変数に代入しています。
















bbb
togetter.com/t/c2022meetzionad
togetter.com/t/b2022meetzionad




twitter 新着検索 Dürer & 測距儀


aaa









bbb
twitter zionadchat
twitter に追い出されたら 連絡先は Gettr https://gettr.com/user/zionadchat
twitter サブアカウント https://twitter.com/2022zionad

old page いいい
new page いいい

目次 2022の目次 単純トリック hatena zionadchat
いいいいいいいい

コレクションと オブジェクト

aaa












import bpy

# 新しいコレクションを作成する
my_collection_name = "円板3軸"
col = bpy.data.collections.new(my_collection_name)
bpy.context.scene.collection.children.link(col)

# 円板を作成する
my_object_name = "円板 Z=0"
bpy.ops.mesh.primitive_circle_add(radius=30.0, fill_type='TRIFAN', location=(0.0, 0.0, 0.0))
obj = bpy.context.object
obj.name = my_object_name

# コレクションにオブジェクトをリンクする
col.objects.link(obj)

# 円板をZ=0平面に移動する
obj.location[2] = 0.0









元のコレクションからオブジェクトを削除するには、以下のスクリプトを使用できます。


import bpy

# 元のコレクションと新しいコレクションの名前
old_collection_name = "元のコレクション"
new_collection_name = "新しいコレクション"

# 新しいコレクションに円板を移動する(前回の回答で説明したスクリプト)
col = bpy.data.collections[new_collection_name]
obj = bpy.data.objects["円板 Z=0"]
col.objects.link(obj)
obj.location[2] = 0.0

# 元のコレクションから円板を削除する
old_col = bpy.data.collections[old_collection_name]
old_col.objects.unlink(obj)






























bbb
togetter.com/t/c2022meetzionad
togetter.com/t/b2022meetzionad




twitter 新着検索 Dürer & 測距儀


aaa









bbb
twitter zionadchat
twitter に追い出されたら 連絡先は Gettr https://gettr.com/user/zionadchat
twitter サブアカウント https://twitter.com/2022zionad

old page いいい
new page いいい

目次 2022の目次 単純トリック hatena zionadchat
いいいいいいいい

202304220 thu 1333

aaa 下書き Dürer & 測距儀2022c085 連番 014 正三角形 6つの詳細 aaa ティコ・ブラーエ氏 2023年04月19日 下書き Dürer & 測距儀2022c085 連番 014 正三角形 6つの詳細  ゴルフ場 ...