20230422 sat ビデオ会議の構造 test版 半径√3へ 修正へ
4月 22, 2023
https://2023na2022.blogspot.com/2023/04/20230422-sat.html
20230422 bbb 半径2に修正
4月 22, 2023
https://2023na2022.blogspot.com/2023/04/20230422-bbb.html
こっちは
ミンコフスキー大先生の時空図 対応版
赤い 過去光円錐 底面 半径 √3
明るい Green の 過去光円錐 底面 半径 2
配布ファイル blenderzionad
配布 20230502 過去光円錐底面 001 元 20230422 正三角形 6つで正六角形 001 遠近法モード
# kaizou正方形 √2変更 000 中心 円錐頂点 square_object.location = (0, - math.sqrt(2), 0)
import bpy
import math
# Side length of square
a = 2 * math.sqrt(2)
# Create mesh data and object
mesh_data = bpy.data.meshes.new("Square")
square_object = bpy.data.objects.new("Square", mesh_data)
# Create vertices of square
vertices = [(a/2, 0, a/2), (-a/2, 0, a/2), (-a/2, 0, -a/2), (a/2, 0, -a/2)]
# Create faces of square
faces = [(0, 1, 2, 3)]
# Assign vertices and faces to mesh data
mesh_data.from_pydata(vertices, [], faces)
mesh_data.update()
# Move square to center
square_object.location = (0, - math.sqrt(2)
, 0)
# Link square to scene
bpy.context.scene.collection.objects.link(square_object)
aaaaaaaaaaaaaaaaaaaaaaa
# obj_name = "half_sphere"
import bpy
import bmesh
from mathutils import Vector, Matrix
import math
zion_name ="半球 r=2 segmentes"
# 半径2の球体を作成 segments=180, ring_count=180
bpy.ops.mesh.primitive_uv_sphere_add(radius=2.0, enter_editmode=False, location=(0,0,0), segments=180, ring_count=180)
# オブジェクトを取得
obj = bpy.context.object
# オブジェクトのメッシュを取得し、bmeshを作成
me = obj.data
bm = bmesh.new()
bm.from_mesh(me)
# 円周の方程式 y^2 + z^2 = 2 の y > 0 の部分の面を削除
for f in bm.faces:
if all([v.co.y > 0 for v in f.verts]):
bm.faces.remove(f)
# bmeshをメッシュに適用してオブジェクトを更新
bm.to_mesh(me)
me.update()
# オブジェクト名を設定
obj.name = zion_name
# オブジェクトの位置を変更
obj.location = (0, 0, 0)
球体 ポイント
import bpy
import mathutils
# 半径0.1の球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.1)
# オブジェクト名を設定
bpy.context.object.name = "x_ball"
# 球体を各x座標に配置
for x in range(-10, 10):
# 球体を複製して新しいオブジェクトを作成
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
# 半径 2の トーラス
# kaizou正方形 120度 正方形 000 中心 円錐頂点 square_object.location = (0, - 1, 0)
import bpy
import math
# Side length of square
a = 2 * math.sqrt(3)
# Create mesh data and object
mesh_data = bpy.data.meshes.new("Square")
square_object = bpy.data.objects.new("Square", mesh_data)
# Create vertices of square
vertices = [(a/2, 0, a/2), (-a/2, 0, a/2), (-a/2, 0, -a/2), (a/2, 0, -a/2)]
# Create faces of square
faces = [(0, 1, 2, 3)]
# Assign vertices and faces to mesh data
mesh_data.from_pydata(vertices, [], faces)
mesh_data.update()
# Move square to center
square_object.location = (0, - 1
, 0)
# Link square to scene
bpy.context.scene.collection.objects.link(square_object)