ポリゴンの裏(うら)と表(おもて)
Cubeを表示(ひょうじ)すると、Aのように表示(ひょうじ)されたと思(おも)います。 Bのように、裏側(うらがわ)が透(す)けないように表示(ひょうじ)するにはどうすれば良(よ)いでしょうか。
色々(いろいろ)な方法(ほうほう)があります。ここでは法線(ほうせん)を利用(りよう)する方法(ほうほう)を紹介(しょうかい)します。
Polygonは裏(うら)と表(おもて)を持(も)っている。
Ploygonには、裏(うら)と表(おもて)があります。表面(おもてめん)は画面(がめん)に表示(ひょうじ)されますが、裏面(うらめん)は画面(がめん)に表示(ひょうじ)されません。
上図(じょうず)のように、反時計回(はんとけいまわ)りが表(おもて)。 時計周(とけいまわ)りが裏(うら)です。
面倒(めんどう)ですね。Polygonで図形(づけい)を書(か)くときは、常(つね)に意識(いしき)しないといけません。
気(き)を抜(ぬ)くと、上(うえ)のように透(す)けてしまします。
(1) 上手(うま)く使(つか)えば、裏側(うらがわ)が透(す)けない立方体(りっぽうたい)をかける。
上図(じょうず)のAのように、渦(うず)が「反時計回り」に見(み)えているものが、180度(ど)回転(かいてん)すると、上図(じょうず)のCのように「時計回りに」に見(み)えます。つまり、180度(ど)回転(かいてん)すると表示(ひょうじ)されなくなります。
例(たと)えば、上図(じょうず)のようにすると、いくら回転(かいてん)しても裏側(うらがわ)が透(す)けて見(み)えないCubeを書(か)くことができます。
右回(みぎまわ)りか、左回(ひだりまわ)りかの判定方法(はんていほうほう)
右回(みぎまわ)りか、左回(ひだりまわ)りかの判定(はんてい)をする機能(きのう)をついかする必要(ひつよう)があります。
この判定(はんてい)には、以下(いか)の数式(すうしき)が使(つか)われること多(おお)いです。
$$\left( \begin{array}{ccc} x{1} & y{1} & z{1}\ \end{array} \right)\$$, $$\left( \begin{array}{ccc} x{2} & y{2} & z{2}\ \end{array} \right)\$$, $$\left( \begin{array}{ccc} x{3} & y{3} & z_{3}\ \end{array} \right)\$$ の三点を通る三角形の場合
$$v = \left(x{2}-x{1}\right) \times \left(y{3}-y{2}\right)
- \left(y{2}-y{1}\right)\times\left(x{3}-x{2}\right) $$
で、$$v$$ が、0よりも大(おおきい)きい場合(ばあい)は「表(おもて)」、小(ちいい)さい場合(ばあい)は「裏(うら)」と判断(はんだん)できます。
(B) Scratchで実装(じっそう)する
(1) 裏表(うらおもて)を判定(はんてい)するスクリプトを追加(ついか)する
(2) ポリゴンを描画時(びょうがじ)に、裏表判定(うらおもてはんてい)を使用(しよう)するようにする
(3) 確認(かくにん)する
https://scratch.mit.edu/projects/88197759/
(3-1) 右上(みぎうえ)の旗(はた)アイコンをクリックすると、Cubeが回転(かいてん)すること
(3-2) 裏側(うらがわ)が透(す)けて見(み)えないこと。
(4) Good!
よくできました。次(つぎ)のステップに進(すす)みましょう。