例020:ポリゴン〜境界の形状

キーワード:ポリゴン

下図中の矢印は各頂点の法線ベクトルを示しています。 2つの面が接する境界線を構成する各点が同じ法線ベクトルを持っていると、境界線で陰影の差ができず境界線が見えなくなります(右)。

ポリゴンxmlのソース

<?xml version="1.0"?>
<polygon>
  <vertices count="80" id_numbers="use">
    <!-- 1-4:左の前面 -->
    <vertex id="1"  image=" 1    1    1    0  0  1 255   0   0"/>
    <vertex id="2"  image="-1    1    1    0  0  1 255   0   0"/>
    <vertex id="3"  image="-1   -1    1    0  0  1 255   0   0"/>
    <vertex id="4"  image=" 1   -1    1    0  0  1 255   0   0"/>
    <!-- 5-8:左の上面 -->
    <vertex id="5"  image=" 1    1    1    0  1  0 255   0   0"/>
    <vertex id="6"  image=" 1    1   -1    0  1  0 255   0   0"/>
    <vertex id="7"  image="-1    1   -1    0  1  0 255   0   0"/>
    <vertex id="8"  image="-1    1    1    0  1  0 255   0   0"/>
    <!-- 9-12:右の前面 -->
    <vertex id="9"  image=" 4    1    1    0  1  1 255   0   0"/>
    <vertex id="10" image=" 2    1    1    0  1  1 255   0   0"/>
    <vertex id="11" image=" 2   -1    1    0  0  1 255   0   0"/>
    <vertex id="12" image=" 4   -1    1    0  0  1 255   0   0"/>
    <!-- 13-16:右の上面 -->
    <vertex id="13" image=" 4    1    1    0  1  1 255   0   0"/>
    <vertex id="14" image=" 4    1   -1    0  1  0 255   0   0"/>
    <vertex id="15" image=" 2    1   -1    0  1  0 255   0   0"/>
    <vertex id="16" image=" 2    1    1    0  1  1 255   0   0"/>
    <!-- 17-20:左の前面右上(vertex 1)矢印 -->
    <vertex id="17" image=" 1    1    1    0  0  1 255 255   0"/>
    <vertex id="18" image=" 1    1    2    0  0  1 255 255   0"/>
    <vertex id="19" image=" 1.1  1    1.8 -1  0  2 255 255   0"/>
    <vertex id="20" image=" 0.9  1    1.8  1  0  2 255 255   0"/>
    <!-- 21-24:左の前面左上(vertex 2)矢印 -->
    <vertex id="21" image="-1    1    1    0  0  1 255 255   0"/>
    <vertex id="22" image="-1    1    2    0  0  1 255 255   0"/>
    <vertex id="23" image="-0.9  1    1.8 -1  0  2 255 255   0"/>
    <vertex id="24" image="-1.1  1    1.8  1  0  2 255 255   0"/>
    <!-- 25-28:左の前面左下(vertex 3)矢印 -->
    <vertex id="25" image="-1   -1    1    0  0  1 255 255   0"/>
    <vertex id="26" image="-1   -1    2    0  0  1 255 255   0"/>
    <vertex id="27" image="-0.9 -1    1.8 -1  0  2 255 255   0"/>
    <vertex id="28" image="-1.1 -1    1.8  1  0  2 255 255   0"/>
    <!-- 29-32:左の前面右下(vertex 4)矢印 -->
    <vertex id="29" image=" 1   -1    1    0  0  1 255 255   0"/>
    <vertex id="30" image=" 1   -1    2    0  0  1 255 255   0"/>
    <vertex id="31" image=" 1.1 -1    1.8 -1  0  2 255 255   0"/>
    <vertex id="32" image=" 0.9 -1    1.8  1  0  2 255 255   0"/>
    <!-- 33-36:左の上面右下(vertex 5)矢印 -->
    <vertex id="33" image=" 1    1    1    0  1  0   0 255 255"/>
    <vertex id="34" image=" 1    2    1    0  1  0   0 255 255"/>
    <vertex id="35" image=" 1.1  1.8  1   -1  2  0   0 255 255"/>
    <vertex id="36" image=" 0.9  1.8  1    1  2  0   0 255 255"/>
    <!-- 37-40:左の上面右上(vertex 6)矢印 -->
    <vertex id="37" image=" 1    1   -1    0  1  0   0 255 255"/>
    <vertex id="38" image=" 1    2   -1    0  1  0   0 255 255"/>
    <vertex id="39" image=" 1.1  1.8 -1   -1  2  0   0 255 255"/>
    <vertex id="40" image=" 0.9  1.8 -1    1  2  0   0 255 255"/>
    <!-- 41-44:左の上面左上(vertex 7)矢印 -->
    <vertex id="41" image="-1    1   -1    0  1  0   0 255 255"/>
    <vertex id="42" image="-1    2   -1    0  1  0   0 255 255"/>
    <vertex id="43" image="-0.9  1.8 -1   -1  2  0   0 255 255"/>
    <vertex id="44" image="-1.1  1.8 -1    1  2  0   0 255 255"/>
    <!-- 45-48:左の上面左下(vertex 8)矢印 -->
    <vertex id="45" image="-1    1    1    0  1  0   0 255 255"/>
    <vertex id="46" image="-1    2    1    0  1  0   0 255 255"/>
    <vertex id="47" image="-0.9  1.8  1   -1  2  0   0 255 255"/>
    <vertex id="48" image="-1.1  1.8  1    1  2  0   0 255 255"/>
    <!-- 49-52:右の前面右上(vertex 9)矢印 -->
    <vertex id="49" image=" 4    1    1    0  0  1 255 255   0"/>
    <vertex id="50" image=" 4    1.7  1.7  0  1  1 255 255   0"/>
    <vertex id="51" image=" 4.1  1.5  1.5 -1  0  2 255 255   0"/>
    <vertex id="52" image=" 3.9  1.5  1.5  1  0  2 255 255   0"/>
    <!-- 53-56:右の前面左上(vertex 10)矢印 -->
    <vertex id="53" image=" 2    1    1    0  0  1 255 255   0"/>
    <vertex id="54" image=" 2    1.7  1.7  0  0  1 255 255   0"/>
    <vertex id="55" image=" 1.9  1.5  1.5 -1  0  2 255 255   0"/>
    <vertex id="56" image=" 2.1  1.5  1.5  1  0  2 255 255   0"/>
    <!-- 57-60:右の前面左下(vertex 11)矢印 -->
    <vertex id="57" image=" 2   -1    1    0  0  1 255 255   0"/>
    <vertex id="58" image=" 2   -1    2    0  0  1 255 255   0"/>
    <vertex id="59" image=" 1.9 -1    1.8 -1  0  2 255 255   0"/>
    <vertex id="60" image=" 2.1 -1    1.8  1  0  2 255 255   0"/>
    <!-- 61-64:右の前面右下(vertex 12)矢印 -->
    <vertex id="61" image=" 4   -1    1    0  0  1 255 255   0"/>
    <vertex id="62" image=" 4   -1    2    0  0  1 255 255   0"/>
    <vertex id="63" image=" 4.1 -1    1.8 -1  0  2 255 255   0"/>
    <vertex id="64" image=" 3.9 -1    1.8  1  0  2 255 255   0"/>
    <!-- 65-68:右の上面右下(vertex 13)矢印 -->
    <vertex id="65" image=" 4    1    1    0  1  0   0 255 255"/>
    <vertex id="66" image=" 4    1.7  1.7  0  1  0   0 255 255"/>
    <vertex id="67" image=" 4.1  1.5  1.5 -1  2  0   0 255 255"/>
    <vertex id="68" image=" 3.9  1.5  1.5  1  2  0   0 255 255"/>
    <!-- 69-72:右の上面右上(vertex 14)矢印 -->
    <vertex id="69" image=" 4    1   -1    0  1  0   0 255 255"/>
    <vertex id="70" image=" 4    2   -1    0  1  0   0 255 255"/>
    <vertex id="71" image=" 4.1  1.8 -1   -1  2  0   0 255 255"/>
    <vertex id="72" image=" 3.9  1.8 -1    1  2  0   0 255 255"/>
    <!-- 73-76:右の上面左上(vertex 15)矢印 -->
    <vertex id="73" image=" 2    1   -1    0  1  0   0 255 255"/>
    <vertex id="74" image=" 2    2   -1    0  1  0   0 255 255"/>
    <vertex id="75" image=" 2.1  1.8 -1   -1  2  0   0 255 255"/>
    <vertex id="76" image=" 1.9  1.8 -1    1  2  0   0 255 255"/>
    <!-- 77-80:右の上面左下(vertex 16)矢印 -->
    <vertex id="77" image=" 2    1    1    0  1  0   0 255 255"/>
    <vertex id="78" image=" 2    1.7  1.7  0  1  0   0 255 255"/>
    <vertex id="79" image=" 1.9  1.5  1.5 -1  2  0   0 255 255"/>
    <vertex id="80" image=" 2.1  1.5  1.5  1  2  0   0 255 255"/>
  </vertices>
  <!-- 矢印の棒 -->
  <line_array count="16">
    <line id="1"  vertex="17 18"/>
    <line id="2"  vertex="21 22"/>
    <line id="3"  vertex="25 26"/>
    <line id="4"  vertex="29 30"/>
    <line id="5"  vertex="33 34"/>
    <line id="6"  vertex="37 38"/>
    <line id="7"  vertex="41 42"/>
    <line id="8"  vertex="45 46"/>
    <line id="9"  vertex="49 50"/>
    <line id="10" vertex="53 54"/>
    <line id="11" vertex="57 58"/>
    <line id="12" vertex="61 62"/>
    <line id="13" vertex="65 66"/>
    <line id="14" vertex="69 70"/>
    <line id="15" vertex="73 74"/>
    <line id="16" vertex="77 78"/>
  </line_array>
  <!-- 矢印の頭 -->
  <triangle_array count="16">
    <triangle id="1"  vertex="18 19 20"/>
    <triangle id="2"  vertex="22 23 24"/>
    <triangle id="3"  vertex="26 27 28"/>
    <triangle id="4"  vertex="30 31 32"/>
    <triangle id="5"  vertex="34 35 36"/>
    <triangle id="6"  vertex="38 39 40"/>
    <triangle id="7"  vertex="42 43 44"/>
    <triangle id="8"  vertex="46 47 48"/>
    <triangle id="9"  vertex="50 51 52"/>
    <triangle id="10" vertex="54 55 56"/>
    <triangle id="11" vertex="58 59 60"/>
    <triangle id="12" vertex="62 63 64"/>
    <triangle id="13" vertex="66 67 68"/>
    <triangle id="14" vertex="70 71 72"/>
    <triangle id="15" vertex="74 75 76"/>
    <triangle id="16" vertex="78 79 80"/>
  </triangle_array>
  <!-- 面 -->
  <quad_array count="4">
    <quad id="1" vertex=" 1  2  3  4"/>
    <quad id="2" vertex=" 5  6  7  8"/>
    <quad id="3" vertex=" 9 10 11 12"/>
    <quad id="4" vertex="13 14 15 16"/>
  </quad_array>
</polygon>