|
前回の球面お絵かきはちょっと不完全でした。
どの辺がダメかと言えば、上手く表現できないのですが、※
上の画像を見ればなんとなくお分かり頂けるかと。
<ソース変更点>
coordinate[0] = ox+r*sin(x/r)*cos(y/r);
coordinate[1] = oy+r*sin(y/r);
coordinate[2] = oz+r*cos(x/r)*cos(y/r);
これを、
float a = 0, b = 0;
a = x/abs(x)*sqrt(sq(x)+sq(y))/r;
if(x!=0){
b = atan(y/x);
}
else if(y>0){
b = PI/2.;
}
else if(y<0){
b = -PI/2.;
}
coordinate[0] = ox+r*cos(b)*sin(a);
coordinate[1] = oy+r*sin(b)*sin(a);
coordinate[2] = oz+r*cos(a);
に変更しますた。
普通に遊ぶ分には正直どうでもいいのですが(その理由で、アプレットは非公開w)、
作る側の情熱にとっては重要な事なのです〜。
ところで、
a = x/abs(x)*sqrt(sq(x)+sq(y))/r;
で絶対値を使っていますが、
上手く一般化出来ないか考え中〜。
※
平面状の端っこはやっぱり、球面上で同じ所に収束させたい訳ですw
<追記>
Classiclllさんありがとうございます〜♪
おかげでソースがスマートになりました♪♪
float a = 0, b = 0;
a = sqrt(sq(x)+sq(y))/r;
b = atan2(y, x);
coordinate[0] = ox+r*cos(b)*sin(a);
coordinate[1] = oy+r*sin(b)*sin(a);
coordinate[2] = oz+r*cos(a);
<さらに追記!!>
今度はglobe()の逆関数を求めるべく式変形していたら・・・
float a = 0;
a = sqrt(sq(x)+sq(y))/r;
coordinate[0] = ox+x*sin(a)/a;
coordinate[1] = oy+y*sin(a)/a;
coordinate[2] = oz+r*cos(a);
ここまで簡単になりました!
タンジェントが消えて、全て同じ偏角!!(偏角とは違うかw
自分でもビックリ〜。
この記事は自分の為に永久保存ですな〜w
|
おおお〜、ソースについてはよく分からないけど、 「ソースを弄って遊ぶ」の奴はなんか良いねえ〜。
2006/7/6(木) 午後 3:53 [ ran*ran*93* ]
あれはオマケです。球面座標のそれぞれの偏角の倍率を変えると色々な、そして予測不可能な立体物が浮かび上がります。
2006/7/6(木) 午後 3:56 [ che*tn*t_ch**mun* ]
P5のatan2()を見てみてください。atan()では特異点(無限遠)の存在と象限判定(第一と第三、第二と第四)の区別が無いんですが、atan2()ではその問題はありません。
2006/7/6(木) 午後 5:17
atan2()は気になっていたのですが、よく分かりませんでしたw もう一回見てきますw
2006/7/6(木) 午後 6:35 [ che*tn*t_ch**mun* ]
「遊ぶより作る方が楽しいと実感します。」って、うれしいタイトルです。
2006/7/6(木) 午後 7:51
あれこれ試行錯誤しながら悩むってのが、なんだかいい感じですw
2006/7/6(木) 午後 9:07 [ che*tn*t_ch**mun* ]
ストレス解消になるでしょう?
2006/7/6(木) 午後 9:35
無心になれますからね。でもちょっと中毒気味かもwww と、カキコしてる今も創作中〜♪
2006/7/6(木) 午後 10:03 [ che*tn*t_ch**mun* ]
遊ぶより作る方が楽しいと、思えるようになりたいものです。ヽ('A`)ノ
2006/7/7(金) 午前 2:50 [ - ]
小さいときにレゴで遊んでいましたが、あれは完成したもので遊ぶより作ってる時の方が面白いですねw
2006/7/7(金) 午前 9:50 [ che*tn*t_ch**mun* ]
それは言えるね。
2006/7/7(金) 午前 9:56 [ ran*ran*93* ]
プログラミングも、「ものづくり」の楽しさを教えてくれます♪
2006/7/7(金) 午前 10:17 [ che*tn*t_ch**mun* ]
ソース、難しいけど遊ぶまえに作らなければ遊べませんよね。作るって素晴らしいことですね。
2006/7/7(金) 午後 0:00
はい。
2006/7/7(金) 午後 1:12 [ che*tn*t_ch**mun* ]
「作る遊び」って〜のだと、一挙両得でごんす。
2006/7/7(金) 午後 5:20 [ ThoruZOO ]
なるほどな
2006/7/7(金) 午後 5:40 [ 友蔵 ]
>thoruさん。まさにそんな感じですね。辛い時ももちろんありますがwww
2006/7/7(金) 午後 6:20 [ che*tn*t_ch**mun* ]
試験も忘れずに
2006/7/7(金) 午後 6:23
>友蔵 電情に行けばよかった・・・orz
2006/7/7(金) 午後 6:23 [ che*tn*t_ch**mun* ]
>Classiclllさん。そうですね・・・忘れてましたorz ハードルは低くないので、真剣に取り組まないと落ちますw
2006/7/7(金) 午後 6:26 [ che*tn*t_ch**mun* ]