やったー
意外に簡単に裏面の処理ができちゃった!
まさか2つのベクトルの外積の計算式がこんなところで役に立つなんて。

ただ1つの面を調べるのに8回もatan使ってます。
速度は大丈夫かな、描写速度よりは計算速度のほうが速いからいいけど。

だれか4点から右方向に回転か、左方向に回転か調べる方法でもっといい方法があったら教えて下さい^^

/*4点が左回転か右回転かを調べる*/

#defcfunc gsqcheck array gsqc_dx,array gsqc_dy
 dimtype gsqcheck_p,vartype("double"),4
 gsqcheck_p_2=0
 gsqcheck_p(0)=(atan((gsqc_dy(1)-gsqc_dy(0)),(gsqc_dx(1)-gsqc_dx(0)))-atan((gsqc_dy(2)-gsqc_dy(1)),(gsqc_dx(2)-gsqc_dx(1))))
 gsqcheck_p(1)=(atan((gsqc_dy(2)-gsqc_dy(1)),(gsqc_dx(2)-gsqc_dx(1)))-atan((gsqc_dy(3)-gsqc_dy(2)),(gsqc_dx(3)-gsqc_dx(2))))
 gsqcheck_p(2)=(atan((gsqc_dy(3)-gsqc_dy(2)),(gsqc_dx(3)-gsqc_dx(2)))-atan((gsqc_dy(0)-gsqc_dy(3)),(gsqc_dx(0)-gsqc_dx(3))))
 gsqcheck_p(3)=(atan((gsqc_dy(0)-gsqc_dy(3)),(gsqc_dx(0)-gsqc_dx(3)))-atan((gsqc_dy(1)-gsqc_dy(0)),(gsqc_dx(1)-gsqc_dx(0))))
 repeat 4
 if gsqcheck_p(cnt)>0{gsqcheck_p_2++}
 loop
 if gsqcheck_p_2>2{return 1}else{return 0}

キーボードの矢印キーで動かせるようにしたやつ。
立方体のみだからZソートしなくても、裏面処理のおかげでなんとか普通に見える。

そういえば、陰面処理したポリゴンの上に陰線処理したワイヤーを乗せると、アニメっぽくなるね。

関連記事

  • Javaで3Dゲーム開発日記 part4 パーリンノイズJavaで3Dゲーム開発日記 part4 パーリンノイズ 3Dと言ったらやっぱりテクスチャ。 パーリンノイズを作ってみた。 ノイズの間は線形補完しています。 本当はバイキュービックとか、しっかりした補完がいいと思うのですが、技術力不足で無理でした。(>_<) こんなのが出来上がるなんて、ランダムって不思議です! 自動生成を利用すれば、小さなファイルサイズでも、高解像度テクスチャを利用できます。 […] Posted in ゲーム制作
  • Javaで3Dゲーム開発日記 part5 画像補間Javaで3Dゲーム開発日記 part5 画像補間 以前の続きでテクスチャのパーリンノイズの補間法の話です。 いい加減補間について調べようといろいろとプログラムして作ってみました。 テクスチャなので、上下と左右が繋がるように補間します。 8x8px → 256x256px […] Posted in ゲーム制作
  • HSPで人工無能の制作日記 part 3 (final)HSPで人工無能の制作日記 part 3 (final) ついに、HSPで人工無能が完成しました。 Yahooチャットルームで泳がせて1400単語覚えました。 それで初めてネットの友達に人工無能としゃべってもらいました。 これはMSNチャットでしゃべったものです。 実際の人工無能との会話例1 なたで(プログラム) の発言: イジイジ 友達(人間) の発言: うん なたで(プログラム) […] Posted in ツール制作
  • Bresenhamアルゴリズムで線分の計算は早いのかなBresenhamアルゴリズムで線分の計算は早いのかな 以前、直線を描くのにこんなのを作った。 特に工夫点もない、素直な方法である。 #module "linem" #deffunc line2 int line_x1,int line_y1,int line_x2,int line_y2 line_xabs = abs(line_x1-line_x2) line_yabs = […] Posted in アルゴリズム
  • 3Dネット対戦ゲーム作成日記 part303Dネット対戦ゲーム作成日記 part30 グラフと、ログインウィンドウにバージョンを表示するようにしました。 ちなみに、このグラフもmmo!が元ネタだったりします・・・! サーバーとクライアントの安定のために色々しました。 サーバーは、クライアント1人に付き、スレッドを3つ作成します。 1つは、通信の入力用スレッド、2つ目は、通信の出力用スレッド、3つめは総まとめのスレッドです。 スレッドを […] Posted in ゲーム制作
  • Javaで3Dレンダラ作りたい人まとめJavaで3Dレンダラ作りたい人まとめ Javaでソフトウェアレンダリングを勉強したい人の調べ物まとめ。順番は関係ないです。 誰もが一度は作ってみたいと思う?3Dソフトレンダラ。是非チャレンジしてみて下さい!!  講座系 石田智史さんの「JAVAで学ぶ3D」 (gcj/JAVAde3D)(Internet […] Posted in ゲーム制作