C言語なら俺に聞け(入門編)Part 61
at TECH
80:デフォルトの名無しさん
10/03/07 15:18:45
>>68 : kdevelop (書こうとしてる字を予測して、自動補完してくれるからラクちんです)
>>71 : 三角形がいっぱいあるとおもってやるほうほうもあるみたいですよ。
double OuterProduct(
double ax, double ay, double az,
double bx, double by, double bz,
double cx, double cy, double cz
) {
double Ax=bx-ax; double Ay=by-ay; double Az=bz-az;
double Bx=cx-bx; double By=cy-by; double Bz=cz-bz;
double opx = (Ay*Bz-Az*By); double opy = (Az*Bx-Ax*Bz); double opz = (Ax*By-Ay*Bx);
return opz;
}
B
A △ C
3角形ABC の中に、点P が「中かな?外かな?」ってのを知りたいときは、
「AB と P」、「BC と P」、「CA と P」 の3つについて、この関数で調べてみて、戻り値が3つとも全部プラス、または3つとも全部マイナスなら
点Pは 3角形ABCの内側ってことらしいです。 なんでか理由はよくわかりませんがw
符号1 = OutarProduct( Aのx座標、Aのy座標, 0、 Bのx座標、Bのy座標、0、 Pのx座標、Pのy座標、0 );
符号2 = OutarProduct( Bのx座標、Bのy座標, 0、 Cのx座標、Cのy座標、0、 Pのx座標、Pのy座標、0 );
符号3 = OutarProduct( Cのx座標、Cのy座標, 0、 Aのx座標、Aのy座標、0、 Pのx座標、Pのy座標、0 );
if( 符号1と符号2と符号3が、3つともプラス。 または3つともマイナスなら){ 点Pは、さんかっけいABCのうちがわ♪ }
ってなるみたいです。 なんでか理由はよくわかりませんがw こんど算数の先生に聞いてみまーす。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5499日前に更新/110 KB
担当:undef