スキップしてメイン コンテンツに移動

blender 3.4.1 python 10x10 の平面に 半径1の円錐 窪みを描いて




blender 3.4.1  python 10x10 の平面に 半径1の円錐 窪みを描いて 冒頭に import math 挿入して

以下はBlender 3.4.1でPythonを使って10x10の平面に半径1の円錐を描き、窪みを作る方法です。最初に必要なmathモジュールをインポートします。



このコードでは、最初にprimitive_plane_add関数を使用して10x10の平面を作成します。次に、primitive_cone_add関数を使用して半径1、深さ1の円錐を作成します。

最後に、mathモジュールを使用して、円錐を平面に沈めるための座標を計算し、locationプロパティを設定して円錐を平面に沈めます。ここでは、45度の角度と深さの半分を使用して、円錐を沈めるための座標を計算しています。

このコードを実行すると、Blenderの3Dビューポートに10x10の平面が表示され、その上に半径1の円錐があり、その円錐に窪みが作られていることがわかります。



import bpy
import math

# 平面を作成
bpy.ops.mesh.primitive_plane_add(size=10)

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

# 円錐を平面に沈めるための座標を計算
angle = math.radians(45)
depth = 0.5
x = depth * math.cos(angle)
y = depth * math.sin(angle)

# 円錐を平面に沈める
bpy.context.object.location = (x, y, 0)




円錐底面が 平面に重なってる場合 その部分の平面を円形で 穴を作って


円錐の底面が平面に重なっている場合、その部分の平面を円形の穴にするには、次のようにします。


このコードでは、まず前述のコードと同様に10x10の平面と半径1、深さ1の円錐を作成します。次に、円錐を平面に沈めて、円錐と平面が重なっている場所を見つけます。

その後、BlenderのBMesh APIを使用して、平面のメッシュを取得し、円錐の底面が重なっている部分の頂点を削除することで穴を作成します。頂点の削除には、頂点が円錐の底面に近いかどうかを判断するために、頂点の座標と円錐の底面の中心の距離を計算しています。

最後に、メッシュを更新してBMeshを解放します。これにより、円錐と平面が重なっている部分に円形の穴が作成されます。


import bpy
import bmesh
import math

# 平面を作成
bpy.ops.mesh.primitive_plane_add(size=10)

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

# 円錐を平面に沈めるための座標を計算
angle = math.radians(45)
depth = 0.5
x = depth * math.cos(angle)
y = depth * math.sin(angle)

# 円錐を平面に沈める
bpy.context.object.location = (x, y, 0)

# 穴を作るための処理
mesh = bpy.context.object.data
bm = bmesh.new()
bm.from_mesh(mesh)
bm.faces.ensure_lookup_table()

for f in bm.faces:
    for v in f.verts:
        if (v.co.xy - bpy.context.object.location.xy).length < 1e-3:
            # 穴を作る頂点の場合、頂点を削除
            bm.verts.remove(v)

bm.to_mesh(mesh)
bm.free()











円錐底面を 平面に重ねた状態にして





円錐の底面を平面に重ねた状態にするには、以下のようにします。

python
Copy code
import bpy
import bmesh
import math

# 平面を作成
bpy.ops.mesh.primitive_plane_add(size=10)

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

# 円錐を平面に沈めるための座標を計算
angle = math.radians(45)
depth = 0.5
x = depth * math.cos(angle)
y = depth * math.sin(angle)

# 円錐を平面に沈める
bpy.context.object.location = (x, y, 0)

# 円錐の底面を平面に重ねるための処理
mesh = bpy.context.object.data
bm = bmesh.new()
bm.from_mesh(mesh)
bm.faces.ensure_lookup_table()

for f in bm.faces:
    if f.normal.z == -1:
        # 円錐の底面を取得し、平面に重ねる
        for v in f.verts:
            v.co.z = 0

bm.to_mesh(mesh)
bm.free()



このコードでは、まず前述のコードと同様に10x10の平面と半径1、深さ1の円錐を作成します。次に、円錐を平面に沈めて、円錐の底面を平面に重ねるための処理を行います。

まず、円錐のメッシュを取得して、BMeshに変換します。次に、BMesh APIを使用して、円錐の底面を見つけます。底面の法線ベクトルがz軸方向に向いている場合、つまり底面が平面と平行である場合、底面の各頂点のz座標を0に設定して、円錐の底面を平面に重ねます。

最後に、メッシュを更新してBMeshを解放します。これにより、円錐の底面が平面と重なっていることが確認できます。








円錐の裏を 銀色に表示したい 手順を教えて not python と python で





手動での手順:

円錐を選択して、マテリアルタブに移動します。
マテリアルを追加し、Base Colorを銀色に設定します。
Viewport Displayの項目で、Base Colorを設定した色が表示されるようにします。
円錐の面を選択して、マテリアルを割り当てます。
これにより、円錐の裏面が銀色に表示されます。

次に、Pythonで円錐の裏面を銀色にする手順を説明します。



import bpy

# 選択中のオブジェクトを取得
obj = bpy.context.active_object

# マテリアルを追加
mat = bpy.data.materials.new(name="silver")
obj.data.materials.append(mat)

# マテリアルを設定
mat.use_nodes = True
nodes = mat.node_tree.nodes
links = mat.node_tree.links
bsdf = nodes["Principled BSDF"]
bsdf.inputs['Base Color'].default_value = (0.753, 0.753, 0.753, 1.0)

# オブジェクトの面を選択して、マテリアルを割り当てる
bpy.ops.object.mode_set(mode='EDIT')
mesh = obj.data
for face in mesh.polygons:
    if face.normal.z < 0:
        face.material_index = 1

# モディファイアを適用して、変更を反映する
bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.modifier_apply(modifier='MIRROR')



このコードでは、まず選択中のオブジェクトを取得し、新しいマテリアルを作成します。次に、作成したマテリアルのプロパティを設定して、Base Colorを銀色に設定します。オブジェクトの面を選択して、円錐の裏面である面に新しいマテリアルを割り当てます。

最後に、ミラーモディファイアを適用して変更を反映します。これにより、円錐の裏面が銀色に表示されます。注意点として、このコードではミラーモディファイアを適用していますが、モディファイアの種類やパラメーターは必要に応じて変更する必要があります。





cc















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




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


aaa
bbb




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

old page いいい
new page いいい

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

このブログの人気の投稿

球体で カシオペア座の5つの恒星 その3次元 宇宙内の相対位置を再現して

import bpy from random import randint # 球体を作成する関数 def create_sphere(x, y, z, radius):     bpy.ops.mesh.primitive_uv_sphere_add(location=(x, y, z), radius=radius) # ランダムな座標を返す関数 def random_location():     x = randint(-5, 5)     y = randint(-5, 5)     z = randint(-5, 5)     return (x, y, z) # 5つの球体を作成 for i in range(5):     location = random_location()     create_sphere(location[0], location[1], location[2], 1) ランダムではなく、 カシオペア座の5つの恒星 その3次元 宇宙内の相対位置を再現して カシオペア座の5つの恒星の相対位置を再現するためには、各恒星の座標を知る必要があります。これらの座標を手動で入力することもできますが、以下のように、座標データを使用することもできます。 import bpy # カシオペア座の5つの恒星の座標 coordinates = [(4.23, 56.87, 13.04),                 (3.19, 61.75, -0.28),                 (1.62, 58.75, -18.45),                 (0.11, 59.15, 16.52),                 (1....

Chat 20230115

  "Exploited" in English means to use or take advantage of someone or something for one's own benefit, often in an unjust or cruel manner. It can also mean to use something to its full potential or to take advantage of an opportunity. Examples of this could be an employer exploiting their workers for higher profits, or a developer exploiting natural resources for their own gain. 機関車トーマス 英語版 事故が起きるよ youtube 教えて I'm sorry, but I'm not able to find any specific information about a "Thomas the Tank Engine accident" on YouTube. It's possible that you may be mistaken or that there is no such content available. ad jazzion 歌です I apologize for the confusion. The song you may be looking for is called "Accidents Will Happen" from the Thomas the Tank Engine & Friends TV series and it's available on YouTube. You can find it by searching for the title of the song or by searching for "Thomas the Tank Engine Accidents Will Happen" on YouT...

blenderzionad Googledrive 配布リンク 20230307 tue

3D Viewport 座標空間の色設定は 配布ファイルに入っていません 座標空間 色設定は ここで  blender 2023 初歩の初歩 006 長方体 cuboid に 3D Viewport 内で 色付け マテリアルわからなくて https://togetter.com/li/2088806 #Togetter 座標空間の色設定 保存は ここで blender 2023 初歩の初歩 007 3D Viewport 色設定保存 https://togetter.com/li/2097575 #Togetter あ 21個の球体を1単位毎に配置し、中央の球体を赤色に塗るPythonコード https://englishjazzionad.blogspot.com/2023/03/211python.html 配布リンク https://drive.google.com/file/d/1pJYEaFjAHNDuiRkCQ70zk5AIhxuG58EZ/view?usp=share_link 36個の球体 円周 https://englishjazzionad.blogspot.com/2023/03/blog-post_6.html 配布リンク https://drive.google.com/file/d/1IzkiO84ilwbzm4JuKuEuYPeR5oWxOIFW/view?usp=share_link 20230307 合体36個の球体 & 21個の球体  配布01 配布リンク https://drive.google.com/file/d/1UXP20HnTFKOcaSbXDrp6Rix-s6lZsBKu/view?usp=share_link ああああああああ あああああああああああああああ トーラス3つ と 立方体の 円柱空洞 2023 03 06 14h51 59 https://youtu.be/a6uxWUL0n7c   トーラス 3つ in 3次元空間 https://englishjazzionad.blogspot.com/2023/03/blog-post_5.html 配布リンク https://drive.google.com/file/d/1Pi6NDO1RHfI403BBm_OBPljUPGwcp526/v...