Julia Makie パッケージによるメッシュ( mesh )の描画(2)
mesh_object(HomogenousMesh)を用いて、tetrahedronを描画する。
実行結果
プログラム
tetrahedron2.jl
using Makie using GeometryTypes scene = Scene(resolution = (600, 600)) vertices = Point{3,Float64}[[0.0, 0.0, 0.0], [1.0, 0.0, 2.0], [2.0, 1.0, 0.0], [0.0, 2.0, 1.0]] faces = Face{3,Int64}[[1, 2, 3], [1, 3, 4], [1, 4, 2], [2, 3, 4]] m = HomogenousMesh(vertices, faces) color = [:red, :green, :blue, :yellow] scene = mesh!(scene, m, color = color)
・HomogenousMeshは、GeometryTypesパッケージ(/src/types.jl)
で定義されています。このmesh_objectを使用するときは、GeometryTypes
の使用宣言をする。
・HomogenousMesh型のフィールド値として、頂点座標(vertices)と
頂点インデックス(faces)を設定し、mesh_objectを生成します。
頂点座標と頂点インデックスは、Point{3,Float64}と Face{3,Int64}の配列として
設定します。
vertices = Point{3,Float64}[[0.0, 0.0, 0.0], [1.0, 0.0, 2.0], [2.0, 1.0, 0.0], [0.0, 2.0, 1.0]] faces = Face{3,Int64}[[1, 2, 3], [1, 3, 4], [1, 4, 2], [2, 3, 4]]
頂点座標は次のようになっています。
V1:(0.0, 0.0, 0.0)、V2:(1.0, 0.0, 2.0)、V3:(2.0, 1.0, 0.0)、V4:(0.0, 2.0, 1.0)
・HomogenousMesh型は、フィールド値として、頂点座標、頂点インデックス、
法線ベクトル、texture座標などが設定できます。
ここでは、 頂点座標と頂点インデックスだけを設定しました。フィールド値が、
頂点座標と頂点インデックスの場合は、SimpleMesh型を使うこともできます。
(/src/typealias.jl)