2023年3月15日水曜日

失敗 blender zion cone

aaa
これを参考に

import bpy
import random

# タグ名
tag_name = "zion cone"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 円錐を作成する
bpy.ops.mesh.primitive_cone_add(radius1=300, depth=300)

# 作成したオブジェクトをコレクションに追加する
obj = bpy.context.active_object
collection.objects.link(obj)






















import bpy

# タグ名
tag_name = "zion cone"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 円錐を作成する
bpy.ops.mesh.primitive_cone_add(radius1=300, depth=600)

# 作成したオブジェクトをコレクションに追加する
obj = bpy.context.active_object
collection.objects.link(obj)

# オブジェクトの変換を変更する
obj.location = (-600, 0, 0)  # 円錐の頂点を指定
obj.data.vertices[0].co = (0, 0, 300)  # 円錐底面の中心を指定







import bpy
import random

# タグ名
tag_name = "zion cone"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 円錐を作成する
bpy.ops.mesh.primitive_cone_add(radius1=100, depth=200)

# 作成したオブジェクトをコレクションに追加する
obj = bpy.context.active_object
collection.objects.link(obj)

# オブジェクトの位置を変更する
obj.location = (0, 0, 0)

# カメラの位置を設定する
cam = bpy.data.objects["Camera"]
cam.location = (0, 500, 0)

# カメラをオブジェクトに向ける
look_at_vector = obj.location - cam.location
rot_quat = look_at_vector.to_track_quat('Z', 'Y')
cam.rotation_euler = rot_quat.to_euler()

# オブジェクトが画面内に収まるようにカメラ位置を微調整する
bpy.ops.view3d.camera_to_view_selected()





円錐をランダムに 50個 obj.location = (0, 0, 0) から500 離れた位置に 円錐の頂点を置いて 円錐の底面中心が700 離れた位置になるようにして

2 / 2

以下のようにスクリプトを書くことで、ランダムな位置に円錐を50個生成し、円錐の頂点を指定された距離に配置することができます。また、円錐の底面中心が指定された距離になるように、底面の中心を計算して位置を微調整しています。

import bpy
import random

# タグ名
tag_name = "zion cone"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 円錐を50個作成する
for i in range(50):
    # 円錐を作成する
    bpy.ops.mesh.primitive_cone_add(radius1=100, depth=200)

    # 作成したオブジェクトをコレクションに追加する
    obj = bpy.context.active_object
    collection.objects.link(obj)

    # 円錐の頂点位置を指定された距離に移動する
    obj.location = (random.uniform(-500, 500), random.uniform(-500, 500), random.uniform(0, 500))

    # 円錐の底面中心が指定された距離になるように微調整する
    bottom_center = obj.location - (0, 0, obj.dimensions.z/2)
    obj.location += (0, 0, 700 - bottom_center.z)

    # マテリアルを作成する
    mat = bpy.data.materials.new(name=f"MyMaterial_{i}")
    mat.diffuse_color = (random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1))

    # オブジェクトにマテリアルを割り当てる
    if obj.data.materials:
        obj.data.materials[0] = mat
    else:
        obj.data.materials.append(mat)

# カメラの位置を設定する
cam = bpy.data.objects["Camera"]
cam.location = (0, 0, 1000)

# カメラをオブジェクトに向ける
look_at_vector = collection.objects[0].location - cam.location
rot_quat = look_at_vector.to_track_quat('Z', 'Y')
cam.rotation_euler = rot_quat.to_euler()

# オブジェクトが画面内に収まるようにカメラ位置を微調整する
bpy.ops.view3d.camera_to_view_selected()












from vapory import *

# 2つの円錐頂点
v1 = [-600, 0, 0]
v2 = [600, 0, 0]

# 円錐の底面中心を求める
center = [(v1[0] + v2[0]) / 2, (v1[1] + v2[1]) / 2, (v1[2] + v2[2]) / 2]

# 円錐の高さと半径
height = 300
radius = 300

# 円錐の底面を中心に配置するための変換行列
translate_matrix = [Translation([center[0], center[1] - radius, center[2]])]

# 円錐の生成
cone = Cone(v1, height, v2, radius, Texture(Pigment('color', [1, 1, 1])))

# カメラの設定
camera = Camera('location', [0, 0, -1000], 'look_at', [0, 0, 0])

# ライトの設定
light = LightSource([0, 0, -1000], 'color', [1, 1, 1])

# 3Dシーンの生成
scene = Scene(camera, objects=[light, cone], included=['colors.inc'])

# 画像の保存
scene.render('cone.png', width=800, height=600, antialiasing=0.01, auto_camera=True, include_alpha=False, remove_temp=True, quality=11)













2つ円錐頂点 (-600,0,0) 
(600,0,0)

円錐の頂点と
円錐底面の中心が 2つの円錐頂点が存在する直線上にする

円錐高さ 300
円錐底面半径 300





















bbb

連番 007 未来光円錐 過去光円錐 円周中心からの球体放出

aaa 参考 2023年3月26日日曜日 製作 002b 未来光円錐の方向 線路レールで https://ia2023sha.blogspot.com/2023/03/002b.html import bpy import math zion_co...