Vala プログラミング

WebGPU プログラミング

おなが@京都先端科学大

Julia Makie パッケージによるメッシュ( mesh )の描画(2)

mesh_object(HomogenousMesh)を用いて、tetrahedronを描画する。

実行結果
f:id:onagat12:20191022142101p:plain

プログラム
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)