Next: 21.3 集合演算
Up: 21 三次元形状記述
Previous: 21.1 bodyクラス
基本立体の定義には,make-cube, make-cylinder, make-prismなど
数種類の関数が定義されている.
eus$ (setq b1 (make-cube 30 40 100))
#<body #X27b920 (:cube 30 40 100)
0.0 0.0 0.0 / 0.0 0.0 0.0>
19.eusx$ (describe b1)
plist=((:volume . 1.200000e+05)
(:centroid . #f(0.0 -4.959103e-08 -4.882809e-07)))
rot=#2f((1.0 0.0 0.0)
(0.0 1.0 0.0)
(0.0 0.0 1.0))
pos=#f(0.0 0.0 0.0)
parent=nil
descendants=nil
worldcoords=#<coordinates #X102893f4
0.0 0.0 0.0 / 0.0 0.0 0.0>
manager=#<body #X1028a078
(:cube 30.0 40.0 100.0)
0.0 0.0 0.0 / 0.0 0.0 0.0>
changed=nil
box=#<bounding-box #X10289d30
#f(-15.24 -20.32 -50.8)/#f(15.24 20.32 50.8)>
faces=(#<face #X1028a174 :cube :bottom>
#<face #X102278b4 :cube :top>
#<face #X1028a138 :cube :side 3 :y>
#<face #X1028a0d8 :cube :side 2 :x>
#<face #X102335b4 :cube :side 1 :-y>
#<face #X10233650 :cube :side 0 :-x>)
edges=(#<edge #X1028a36c #f(15.00 20.00 -50.00)
#f(-15.00 20.00 -50.00)>
#<edge #X1027a40c #f(15.00 20.00 50.00)
#f(-15.00 20.00 50.00)>
#<edge #X1028a2ac #f(15.00 -20.00 -50.00)
#f(15.00 20.00 -50.00)>
#<edge #X1028a2d0 #f(15.00 20.00 -50.00)
#f(15.00 20.00 50.00)>
#<edge #X1027a4a8 #f(15.00 -20.00 50.00)
#f(15.00 20.00 50.00)>
#<edge #X1027a640 #f(-15.00 -20.00 -50.00)
#f(15.00 -20.00 -50.00)>
#<edge #X1028a210 #f(15.00 -20.00 -50.00)
#f(15.00 -20.00 50.00)>
#<edge #X1027a484 #f(-15.00 -20.00 50.00)
#f(15.00 -20.00 50.00)>
#<edge #X1027a544 #f(-15.00 20.00 50.00)
#f(-15.00 20.00 -50.00)>
#<edge #X1027a580 #f(-15.00 20.00 -50.00)
#f(-15.00 -20.00 -50.00)>
#<edge #X1027a5a4 #f(-15.00 -20.00 -50.00)
#f(-15.00 -20.00 50.00)>
#<edge #X1027a448 #f(-15.00 20.00 50.00)
#f(-15.00 -20.00 50.00)>)
vertices=(#f(15.0 20.0 -50.0)
#f(15.0 20.0 50.0)
#f(15.0 -20.0 -50.0)
#f(15.0 -20.0 50.0)
#f(-15.0 20.0 -50.0)
#f(-15.0 -20.0 -50.0)
#f(-15.0 -20.0 50.0)
#f(-15.0 20.0 50.0))
model-vertices=(#f(15.0 20.0 -50.0)
#f(15.0 20.0 50.0)
#f(15.0 -20.0 -50.0)
#f(15.0 -20.0 50.0)
#f(-15.0 20.0 -50.0)
#f(-15.0 -20.0 -50.0)
#f(-15.0 -20.0 50.0)
#f(-15.0 20.0 50.0))
convexp=t
geometry::evertedp=nil
csg=((:cube 30.0 40.0 100.0))
nil
このように,多面体を表現するデータにはたくさんの情報が含まれている.
generated through LaTeX2HTML. M.Inaba 平成18年5月7日