トップページ⇒tech
1001コメント336KB

プログラミングの為の数学と算数 vol.2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
プログラムに必要な数学、算数に関する話題について
語りましょう。TIPS/Q&Aスレです。
06966912007/01/31(水) 12:29:27
>>695
その通りなんですが、
未知データの解析なので、
「最小二乗法を使っても円にならない」ならそれもひとつの結論、
みたいな。
0697デフォルトの名無しさん2007/01/31(水) 13:38:16
何も考えずにたった4点で最小二乗法をやるのは馬鹿げてる。
もし論文なんかで出したら一笑されるぞ。

少数観測点からデータを復元する話は GPS などの位置計測で
よくある話で、そういう場合にまともな推定をしようとすれば
観測点の状態が分かってることが必要になる。
たとえば、真の値からのずれがある確率分布に従うと仮定を
置けば、最尤推定などによって最もそれっぽい場所が出る。

正規分布に従うと仮定してよい場合は最尤推定は最小自乗法に
一致するため、多くの GPS ではこの仮定を(知ってか知らずか)置いている。
多量のデータで最小自乗法が有効なのは、中心極限定理によって
分布が正規分布に漸近するため。
06986912007/01/31(水) 13:40:21
あ、このページ
>★最小2乗法による円弧推定
ってそのまんまのタイトルがあった。

3点から円を求めるのもこのページから見つけたのに気付かなかったOTL
06996912007/01/31(水) 13:43:33
>>697
>何も考えずにたった4点で最小二乗法をやるのは馬鹿げてる。
>もし論文なんかで出したら一笑されるぞ。

了解、納得でつ。

必ずしも円になるのか分からないデータの解析なので、
逆にデータ解析結果から観測点が円にならないという結論を出しますが。

ある部分は円、ある部分は円にならず従って応力受けてる、みたいな。
0700デフォルトの名無しさん2007/01/31(水) 13:48:36
>逆にデータ解析結果から観測点が円にならないという結論を出しますが。
これはいえない。最小自乗法では円にならなくても、ほかの方法では
円になる場合があるかもしれない。
07016992007/01/31(水) 13:57:36
>>700
じゃあ、ほかの方法教えて。


ところで、
>★最小2乗法による円弧推定
を読んだら、
>この3つの方程式を解けば良い.
で終わってる。

解かないといけないのか。
0702デフォルトの名無しさん2007/01/31(水) 14:12:46
>>701
上で述べられていた任意の三点の中心の平均や重心は有力。
また、697 で述べたように、最尤推定はひとつの別の方法。
ほかにも最小自乗や最尤推定を部分に含むが、適当な
ペナルティ関数を設定して最小化問題として解く手もある。

最尤推定やペナルティ法は、円になるかどうか分からないものの
判定なら、おそらく最小自乗を用いるよりも良い結果が得られる。
(最小自乗では、一直線上のデータは半径が(ほぼ)無限大の円と
 判断されるが、通常の応用ではそれを弾きたいことが多い)
07037012007/01/31(水) 14:33:09
>最尤推定やペナルティ法は

これらはライブラリにもなってなさそうだね。

実装難しそう...
07047012007/01/31(水) 18:42:23
>2a( X*X/N -XX)+ 2b(X*Y/N -XY) =X(XX+YY)/N-XXX-XYY ----1)
>2a( X*Y/N -XY)+ 2b(Y*Y/N -YY) =Y(YY+XX)/N-YYY-XXY ----2)
>r*r=(XX+YY-2.0(a*X+b*Y) )/N+a*a+b*b; ----3)
>この3つの方程式を解けば良い.


やっぱこれ何度読んでも分からないんだけど、
4点をどうやって代入するわけでしょうか?

解答が目の前にありながら使いこなせないorz
0705デフォルトの名無しさん2007/02/01(木) 12:41:01
>>704
X → 肺i XX → 肺i*xi XXX → 肺i*xi*xi
Y → 輩i YY → 輩i*yi YYY → 輩i*yi*yi
以下略
の意じゃね? xi, yi が配列要素で直線上にない3点が最低限必要と。
0706デフォルトの名無しさん2007/02/05(月) 17:23:56
>>704
後は、1) 2)式から a,b2変数の連立一次方程式を解けば中心が求まるでしょ?
それを3)に代入すれば半径も求まる
0707デフォルトの名無しさん2007/02/14(水) 10:09:26
たぶん、質問者の目的には、

 4点中 3点で求まる円から、 残った1点までの円からの距離2乗(|中心からの距離-半径|)を出して
 それを4つ加算した結果、
またはそれを半径で割って正規化したもの

でいいんじゃないのか?


0708デフォルトの名無しさん2007/02/28(水) 21:55:01
保守アゲと質問募集
0709デフォルトの名無しさん2007/03/25(日) 15:02:16
幅 W、高さ H の楕円上に N個の点を等間隔に打とうと思いました。

for(i = 0; i < N; i++) {
 int x = cx + sin(i * 2 * PI / N) * (W / 2);
 int y = cy + cos(i * 2 * PI / N) * (H / 2);
 plot(x, y);
}

ところがというか当然というか、これだと W = H の円の時にしか点が等間隔になりません。
どうしたら良いでしょうか?
知っていなくてはいけない公式などありましたら教えてくださいませ。
0710デフォルトの名無しさん2007/03/25(日) 15:24:58
少し上のほうにあった,放物線を速さ一定で進むというのと同じ話だよ
0711デフォルトの名無しさん2007/03/25(日) 15:26:04
あれ,と思ったけどそれは他スレか
0712デフォルトの名無しさん2007/03/25(日) 15:44:51
楕円の円周の長さは 楕円積分という厄介な分野で
それを等間隔に分割というのは、その厄介な問題に挑戦するという事になる

数式では基本的に解けないから、数値積分で頑張るしかないよ
0713デフォルトの名無しさん2007/03/25(日) 15:46:43
W > H > 0になるようにして
int x = cx + W * cos(i * 2 * PI / N);
int y = cy + H * sin(i * 2 * PI / N);
でどうでっしゃろ?

07147132007/03/25(日) 15:47:20
あ、無理だったごめん
0715デフォルトの名無しさん2007/03/25(日) 16:06:21
楕円関数の近似式をkの値を適当に決めたルックアップテーブルみたいな形で用意しとけばいいんじゃね?
それつかって円周を求めた(ここではLとおく)として
始点(仮に中心からx軸方向に幅/2移動した点としよう)から
円周にそってl ( = n×L, nは適当な実数)分移動したときの座標(x,y)ってのは楽に求まるの?
精度気にしないのならこれでいけると思うんだけど、どうでしょうか?
0716デフォルトの名無しさん2007/03/25(日) 16:20:25
近似でいいのなら、
Nの個数を30倍くらいに増やし一度テーブルを作成して
補間で、近似値を求めるのが一番簡単だろう
0717デフォルトの名無しさん2007/03/25(日) 16:40:25
もう少し詳しく。
そのテーブルの中味と、
何のデータを元にして、
何の式で補間するか書いてください
お願いします(-∧-)
07187092007/03/25(日) 16:51:16
ありゃ、思いのほか厄介な問題だったんですね・・・
>>715 円周に沿って l の座標を求める方法がよくわからないです。すみません。
>>716 で言う方法かはわかりませんが、自分ならこうやりますがどうでしょう?

 1. 30N の全ての点の座標を求たテーブルを作る
 2. 隣り合う点との距離を三平方の定理で求めることを全ての点について行い、円周の近時値を計算する
 3. 円周を N等分した長さを求め、これを当初の N個の頂点間の距離 d とする
 4. 30N のテーブル中の頂点の中から、それぞれの点の円周上の位置(始点からの距離)に近いものを選んで点を打つ
0719デフォルトの名無しさん2007/03/25(日) 16:53:40
補間は、とりあえず線形補間とすれば、
テーブルの中身:

double ax[N*30];
double ay[N*30];
double aL[N*30];
double L=0;

ax[i] = cx + W * cos(i * 2 * PI / N);
ay[i] = cy + H * sin(i * 2 * PI / N);
if( i != 0 ) L+= hypot(cx-ocx , cy-ocy);
aL[i]=L;
ocx=cx;
ocy=cy;


のテーブルを作るでしょ?
Lを周長の代用として、

c= L*i/N で aL[k]<=c && aL[k+1]<c になる k を見つけて比例で分割して

w = ((c-aL[k]) /(aL[k+1]-aL[k]) + k) :2*Pi/N

を角度にするという感じ


0720デフォルトの名無しさん2007/03/25(日) 17:04:31
>>718
>円周に沿って l の座標を求める方法
楕円積分の逆関数だから、楕円関数使って求まる気がする。
もちろん、楕円関数の値は数値的に計算するものだけど。
07217192007/03/25(日) 17:13:07
ゴメンミス テーブルは aL だけでいい。

double aL[N*30];
double L=0;
for( i=0;i<30*N;i++}{
ax  = cx + W * cos(i * 2 * PI / N);
ay  = cy + H * sin(i * 2 * PI / N);
if( i != 0 ) L+= hypot(ax-oax , ay-oay);
aL[i]=L;
oax=ax;
oay=ay;
}

次のループは
for( i=0;i<N;i++}{
で while(aL[k]>c) k++;

07227192007/03/25(日) 17:16:37
ありゃ、元の式は 違うのか、 上の
 ax = cx + sin(i * 2 * PI / N) * (W / 2);
 ay = cy + cos(i * 2 * PI / N) * (H / 2);
に訂正、

続き、

w = ((c-aL[k]) /(aL[k+1]-aL[k]) + k)*2*PI/N;
int x = cx + sin(w) * (W / 2);
int y = cy + cos(w) * (H / 2);
plot(x, y);
}
07237092007/03/25(日) 17:30:02
>>722
丁寧にどうもありがとうございます。
よくわかりました。

>>720
まずは楕円積分というのを勉強しなくてはいけなそうです。
おいおいスキルアップしたいと思います。

>>710
よろしければそのスレを教えてもらえないでしょうか。
放物線を速さ一定で進むってのも興味あります。
0724デフォルトの名無しさん2007/03/25(日) 17:44:59
楕円の周長なら
ttp://www.tensyo.com/urame/prog/ALGO.HTM
の後ろの方に計算方法が書いてあったけど
コレは今回の問題には応用できないな
0725しょう2007/03/25(日) 20:12:39
ある学校の生徒数は 1年生が全体の三分の一であり、2年生と 3年生の生徒数の比は5:6である。1年生の生徒数をa人、2年生の生徒数をb人とするとき、bをaの式で表せ。   この問題誰か解いてください
0726デフォルトの名無しさん2007/03/25(日) 20:19:03
プログラミング関係ないな。
宿題は他をあたりなさい。
0727デフォルトの名無しさん2007/03/25(日) 20:22:52
1) a*3=b+c
2) b*6=c*5

1' a*3*5=b*5+c*5
a*3*5=b*5+b*6=b*11


b=a*3*5/11
0728デフォルトの名無しさん2007/03/25(日) 20:23:34
うわーなんてむずかしいもんだいなんだー
0729しょう2007/03/25(日) 20:27:12
解らないですか?
0730デフォルトの名無しさん2007/03/25(日) 20:28:17
ヒントください
せめて何学年まであるか、一学年何クラスかぐらいはわからないと・・・
0731しょう2007/03/25(日) 20:31:33
高校受験の問題です。問題用紙のままカキコしました。
0732デフォルトの名無しさん2007/03/25(日) 20:34:09
……('д`)帰れリア厨
0733デフォルトの名無しさん2007/03/25(日) 20:41:40
SPI並の難しさだな
中学生じゃ解けないよ
大学入って掃き出し法を習うまでとっておきなさい
0734デフォルトの名無しさん2007/03/25(日) 21:04:47
厨房でも溶けるだろ
>727間違ってる
1)a*2=b+c
だな。
で、2)はb:c=5:6から出した式ですね
あとは連立方程式
0735デフォルトの名無しさん2007/03/25(日) 21:31:43
このスレの上の方で文系は数学から逃げ〜とか言ってたけど
俺数学選択で早稲田受かったよ
0736デフォルトの名無しさん2007/03/25(日) 21:38:14
おめでと(^O^)/
0737デフォルトの名無しさん2007/03/25(日) 21:42:19
ありがと(^0^)/
まぁ政経だけどねwショボいけど
0738デフォルトの名無しさん2007/03/25(日) 22:12:11
理系で数学から逃げた俺は退学して工場労働者やってるお(^o^)
0739デフォルトの名無しさん2007/03/26(月) 00:05:29
>>723
これだった
http://pc11.2ch.net/test/read.cgi/gamedev/1170387853/
0740デフォルトの名無しさん2007/03/26(月) 00:10:22
>>734
それを言うなら、 a = (a + b + c) * 1/3 だろ。実際のところ、3学年しかないという前提はどこにもないわけだが。
0741デフォルトの名無しさん2007/03/26(月) 00:26:09
>>723
楕円の周長計算、
「使えるだけでいい」という姿勢なら
単に数値計算ライブラリからソースコピればいける気が。
0742デフォルトの名無しさん2007/03/27(火) 01:25:31
テスト
http://www.youtube.suppa.jp/?uk5LgzILKQU59%+0kBtqQp0RJf30%+8rTFpttjtSU89%+eKWwj9JoAln29%+OSjDO5IUnWJ14%+amKCPh1YrDR14%+KmClRwiAMOy29%+4gIU8IV2hvR14%+CxM26WyV1_d29%+mIBUzAsDgyE132%+@1@_AutomaticPlay
0743デフォルトの名無しさん2007/03/27(火) 02:01:51
>>742はコチラへ移動しました
★☆YouTubeのCMを連続動画に☆★
//ame.x0.com/main/070327015730.html
http://ame.x0.com/main/070327015730.html
0744デフォルトの名無しさん2007/03/28(水) 11:26:38
円と曲線がどれだけズレてるかの面積?みたいなものはどうやって計算すればよいですか?
0745デフォルトの名無しさん2007/03/28(水) 11:31:26
曲線が定義済なら、数値積分すればいいじゃない
0746デフォルトの名無しさん2007/03/28(水) 11:37:36
あ、曲線は自由曲線(ドットというか。。。)です。
0747デフォルトの名無しさん2007/03/28(水) 11:43:15
50レスほど戻れば、似たような話をしているよ
>>689のリンク先のページは見た?
0748デフォルトの名無しさん2007/03/28(水) 13:40:09
>>746
その離散点使って、数値積分的なことすれば?
Σ(点から直線への距離 × 傾き)
みたいなのを。
0749デフォルトの名無しさん2007/03/28(水) 19:00:37
曲率の分散とか?
0750デフォルトの名無しさん2007/03/28(水) 23:08:36
>>746
>あ、曲線は自由曲線(ドットというか。。。)です。 

ドットを数えろ。
0751デフォルトの名無しさん2007/03/29(木) 08:38:46
ラジャ>>750
0752デフォルトの名無しさん2007/03/29(木) 08:57:37
円と離散点群がどれだけズレているかなら、
案1、 (点と中心との距離-半径)^2 の平均 ÷ 半径^2
案2、 ( 点と中心との距離^2 - 半径^2 )^2 の平均 ÷ 半径^4

あたりだろう。
0753デフォルトの名無しさん2007/03/29(木) 14:03:24
「ズレている」がきちんと定義されんとなんとも。
基準円よりも広いところで円をなす点たちと
基準円上のある点にのみ集中する点たちで
どっちが「円からズレている」かは一概には言えない。
0754デフォルトの名無しさん2007/03/29(木) 14:22:10
そこで残差の二乗の総和ですよ
0755デフォルトの名無しさん2007/03/29(木) 15:48:26
何が「そこで」なの?

残差自乗みたいな簡単な尺度では「(概形が)円からズレてない」
みたいな位相的な構造はとても捕まえられないはずだけども。
0756デフォルトの名無しさん2007/03/29(木) 16:07:10
>>753 それは、 ズレを最小にする円があるかどうかの問題になるんじゃないのか?

指定された円とのズレという量があればそれを最小にする半径、中心も求められるわけで・・・

それとも何か素晴らしいアイデアをお持ちで?
0757デフォルトの名無しさん2007/03/29(木) 16:33:07
>>756
だから「ズレている」を定義してくれと言ってるんだけどな。
一点に集中してても「ズレてない」とするなら残差自乗で十分だし、
そうでないならより輪郭線抽出などの手法が要るかもしれない。
0758デフォルトの名無しさん2007/03/29(木) 16:37:32
欠点はあるが 簡単な定義は>>752くらいしか無いだろう?

もう少しややこしくするなら、点同士がどれだけ中心からの角度で分散しているかの数値を入れるかい?
0759デフォルトの名無しさん2007/03/29(木) 16:44:25
なんとなく想像だけど、手書きの丸と円のずれ具合を定量化したいんじゃないのかな?
だとすれば>750で充分だと思うのだけど。
#目的も判らずに数学的な意味を見出そうとしても虚しいばかりだ。
0760デフォルトの名無しさん2007/03/29(木) 16:52:34
ドットを数えるってどうやるの?
0761ラジアンの比較で躓いてます2007/03/29(木) 16:57:43
別スレで http://pc11.2ch.net/test/read.cgi/tech/1175129517/9 の質問をして、最終的にこちらに誘導されてきました。
質問の回答として、以下のコードを教えてもらいました。

v1 … p1→p2 のベクトル
v2 … p2→p3 のベクトル

struct point { double x, y; };
bool isJustLeft(point v1, piont v2)
{
double corssProd = v1.x * v2.y - v1.y * v2.x; //外積
double norm1 = v1.x * v1.x + v1.y * v1.y; // |v1|^2
double norm2 = v2.x * v2.x + v2.y * v2.y; // |v2|^2

if( corssProd < 0.0 ) return false; // 時計回りはダメ
if( crossProd * crossProd == norm1 * norm2 ) return true; // 直角判定
return false;
}


でも、ベクトルの外積って通常3次元のベクトルを返しますよね。上記だと

> double corssProd = v1.x * v2.y - v1.y * v2.x; //外積

とスカラー値を返しているのですが、今一つやっている意味が判りません。

http://yuki.to/math_cgi/prybbs.html?log=3&mode=res&no=36824

ぐぐったらこんな掲示板見つけたけど、回答者の答えがイマイチ判りません。
コードを通して、ベクトルを理解したいのですが、誰か教えてもらえませんか?
0762デフォルトの名無しさん2007/03/29(木) 17:08:28
v1,v2の外積の結果は、その2つに直角な方向ですが、
v1,v2が平面上なのでZ成分のみとなります。 だから省略したのでしょう
0763デフォルトの名無しさん2007/03/29(木) 17:24:43
外積の定義って曖昧というか、人によって違うというか。

1つは、>>762 の言うように、3次元ベクトルの外積の考え方を使って、
(x1, y1, 0) × (x2, y2, 0) = (0, 0, x1 y2 - x2 y1) の z 成分のみを取ったもの。

もう1つは、n 次元のベクトルは、n - 1 本あれば、それらに垂直なベクトルが決まるので、
n - 1 本のベクトル → 1 本の n 次元ベクトルを求める演算を外積と呼ぶ。
こっちの流儀だち、2次元ベクトルの外積は1本→1本の演算になって、
「積」というとちょっと微妙。

まあ、x1 y2 - x2 y1 は、外積の値というか、
符号付面積、あるいは行列式よね。
3次元ベクトルの外積は、その絶対値が符号付面積になってるから、
その類推で、2次元ベクトル2本の貼る平行四辺形の符号付面積を外積と呼ぶのかも。
0764ラジアンの比較で躓いてます2007/03/29(木) 17:36:19
>762
なるほど・・・時計回りだとZ値が下方向
反時計回りだと上方向になる性質を利用して、
Z値だけで判断すればいいという事ですね!!
0765ラジアンの比較で躓いてます2007/03/29(木) 17:39:31
もうひとつ質問ですが、ここは何をやっているのでしょうか?

double norm1 = v1.x * v1.x + v1.y * v1.y; // |v1|^2
double norm2 = v2.x * v2.x + v2.y * v2.y; // |v2|^2
0766デフォルトの名無しさん2007/03/29(木) 17:47:02
>>765
え、えっと、変数名もnormだし、コメントもnormだし、normを計算しているんじゃないかなあ。
0767デフォルトの名無しさん2007/03/29(木) 17:53:54
直角であるかどうかは 内積x1*x2+y1*y2 が0になる事
(v1.x * v2.y - v1.y * v2.x)^2 -(v1.x * v1.x + v1.y * v1.y)*( v2.x * v2.x + v2.y * v2.y)
を変形してくと・・・・
って内積計算した方が計算量少ないかもしれないが
まあ、折角 外積計算したからって所じゃないのかな
0768ラジアンの比較で躓いてます2007/03/29(木) 18:03:57
>766
一瞬正規化?とか思っちゃいましたが、「ノルム」でしたか・・・orz
0769デフォルトの名無しさん2007/03/29(木) 18:19:33
>「ノルム」

って日本語の数学では何だっけ?
0770デフォルトの名無しさん2007/03/29(木) 18:27:37
世の中には日本語の数学と英語の数学があるらしい。
0771デフォルトの名無しさん2007/03/29(木) 18:37:01
定まった和訳は無く、日本語をあててる本も特に知らないなあ。
参考までに、中国語では「范数」と書くそうな。
0772デフォルトの名無しさん2007/03/29(木) 18:41:31
>>769
ノルムはノルムじゃない?
数学用語としてじゃなくて、一般には基準とか模範って訳すけど。

ノルムに似たので(というか、絶対値の一般化)付値ってのがあるけど、
それは英語でも valuation。
0773デフォルトの名無しさん2007/03/30(金) 08:56:16
則(のり)じゃなかったか?

片方を90度回転したベクトルで内積をとっても、時計回り判定はできる。
90度回転操作を (x, y) → (-y, x) とすると、外積とコメントされた式と同じになる。
好きな方で解釈するといい。
0774デフォルトの名無しさん2007/03/30(金) 09:20:27
内積外積を使わなくてもこれは解ける
片方のベクトルが水平(y成分が0)になるように回転変換し、
もう一方のベクトルのx成分が0なら垂直で y成分の符号を見ればいい
でも、それが内積と外積になっちゃうんだけどね
0775デフォルトの名無しさん2007/03/30(金) 11:56:04
プログラミングの学習を先にはじめて、その必要に迫られて
その都度、数学の教養を身に着ける順序でも遅くなくねえ?

問題集をひたすら解くだけの抽象的な数学の本ばかり読んで
いると、生きることの意味がわからなくなってくるよ。
0776デフォルトの名無しさん2007/03/30(金) 11:57:48
既出でしたら、ごめんなさい

半径10センチの球表面の座標(XYZ)をファイルに出力したいと考えております
点の間隔は0.1センチぐらいでいいかな、と

ファイルに落とす部分は、わかっているんですが
座標を算出するアルゴリズムが、さっぱりわからなくて

お分かりになる方、御教授いただけると助かります
0777デフォルトの名無しさん2007/03/30(金) 12:20:47
>>755
それが許されればな。

>>756
3次元空間なら
x^2 + y^2 + z^2 = 半径^2
を満す実数だったと。
ざっぱになら x と y で for ループ回しながら z の値を算出すすとか。

もしくは 三次元空間の極座標
x = 半径 * sin(th1) * sin(th2)
y = 半径 * sin(th1) * cos(th2)
z = 半径 * cos(th1)
解説: http://hp.vector.co.jp/authors/VA030421/fdd06.htm
で角度(th1, th2)でループまわすことも考えられる。

角度で回すのなら、球面三角法
http://ja.wikipedia.org/wiki/%E7%90%83%E9%9D%A2%E4%B8%89%E8%A7%92%E6%B3%95
も見おくべし。
07787762007/03/30(金) 12:56:17
>>>777

ありがとうございます。できたっぽいです
たすかりました
0779デフォルトの名無しさん2007/03/30(金) 20:41:06
そのような極座標だと、目の細かい場所と粗い場所ができないか
できてもさしつかえないならいいけど、もしさしつかえあるなら
ユニバーサルメルカトル図法みたいな雰囲気で局所座標系を
とったりするとよさそうな気が
0780デフォルトの名無しさん2007/03/31(土) 01:53:29
等間隔にするならジオデシックスフィア(日本語でなんて言うのか知らん)の頂点として出すとか
0781デフォルトの名無しさん2007/03/31(土) 02:39:25
まあ、やっぱり極付近ほど密になるけど、↓みたいなのはある。
http://www.cubido.at/Blog/tabid/176/EntryID/86/Default.aspx

ジオデシックドームの頂点求めるんだたら↓これ?
http://www2.tokai.or.jp/tomo-kun/readmeJ.html
0782デフォルトの名無しさん2007/03/31(土) 04:54:50
正20面体に重心細分を繰り返して得られる多面体とかではどうかね
0783デフォルトの名無しさん2007/04/11(水) 11:07:50
自由な曲線(ベジェ曲線か、折れ線の点列)を円弧のあつまりで近似したいんですが、
ヒントはないでしょうか?
0784デフォルトの名無しさん2007/04/11(水) 11:16:08
円弧は半径が決まっているの? つまりフライスのようなので削るというような場合?

単純に円弧で近似したいのがどういう状況か判らないのだけど
曲線の場合は、微分が一致するように接続してゆけばいいのだけど
円弧の場合は2点と半径で求まってしまうので、
どうやっても接続点が尖がってしまう
0785デフォルトの名無しさん2007/04/12(木) 00:12:15
円弧と線分ならどうにかそれっぽくなるかも
0786デフォルトの名無しさん2007/04/12(木) 08:40:07
円弧の半径に制限無かったら、無限小の円弧になるだけだろ。
0787デフォルトの名無しさん2007/04/13(金) 04:39:53
無限小の円弧の集合では曲線は近似できないのでは。
07887842007/04/13(金) 06:06:45
まてよ。
接続点で中心の方向が一致すればいいと解けば
接続点が尖らないように出来るか 
0789デフォルトの名無しさん2007/04/13(金) 06:16:25
>>788
 )
(
 )
(

こういうこと?
0790デフォルトの名無しさん2007/04/13(金) 13:54:27
円弧も極小の長さで繋いでゆけばどんな曲線でも表現出来るし、
直線も半径を限りなく大きな値にすれば可能っぽいね。
適当に曲線から3点抽出して、3点を通る円を求めればいいんじゃね?
必要精度に達していなければ間隔を短くし、足りてれば長くして情報量を落とせばいけそう。
0791デフォルトの名無しさん2007/04/13(金) 20:32:08
半径無限大に飛ばせば曲率ゼロだしな。
0792デフォルトの名無しさん2007/04/14(土) 00:14:38
よくあるフォームの座標系を
0|
―+―――→x
 |
 |
 ↓
y
を、
  y
  ↑
  |
  |
―+―――→x
 0 |
に変換する行列教えてください。
0793デフォルトの名無しさん2007/04/14(土) 00:26:24
1, 0; 0, -1
0794デフォルトの名無しさん2007/04/14(土) 15:36:47
>「network.standard-url.escape-utf8」を「false」にしてください。
>about:configで「network.standard-url.encode-utf8」を「true」にします。

上記の設定で、無事、日本語になりました。

気になるのは、IE7では、『"』⇒『"』でしたが、
http://forum.mozilla.gr.jp/?mode=new&no=0&X='国際化'
http://forum.mozilla.gr.jp/?mode=new&no=0&X=";国際化"

FireFox2では、『"』⇒『%22』になっていました、少々オシイです。
http://forum.mozilla.gr.jp/?mode=new&no=0&X='国際化'
http://forum.mozilla.gr.jp/?mode=new&no=0&X=%22国際化%22

『%22』を『"』に戻す作業が残ってしまいます。
共通化としてOpera9の国際化URL設定も分かると良いと思います。
0795デフォルトの名無しさん2007/04/18(水) 10:03:30
数学的要素が少ないプログラムの分野は何ですか?
ゲームプログラムは数学的要素満載だと思うのですが。
■ このスレッドは過去ログ倉庫に格納されています