C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.7927 の関連記事表示

<< 0 | 1 >>
■7927  反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/19(Wed) 21:45:25)

    分類:[.NET 全般] 

    以前 反時計回り 時計回りのスレを立てさせていただいたものです。
    過去ログを検索しましたが、なくなってしまっていました(TT)

    すいませんバグがあったので対応方法ご相談させてください。
    [A] {x=43.435263644876358 y=46.805638648666644 z=0.050000000745058060 }
    [B] {x=46.820140424800996 y=50.190515428591283 z=0.050000000745058060 }
    [C] {x=46.820140424800996 y=50.190515428591283 z=-0.050000000745058060 }
    [D] {x=43.435263644876358 y=46.805638648666644 z=-0.050000000745058060 }

    この座標のベクトルは約
    ベクトル
    AB 3 4 0
    AC 3 4 -1
    AD 0 0 -1

    外積
    AB×AC -4 3 0
    AC×AD -4 3 0


    上のがいせきの合計値のXYZをすべて足すと0なので、面積や座標の回転方向が求まりませんでした><
    ご教授お願いします。




親記事 /過去ログ20より / 関連記事表示
削除チェック/

■7929  Re[1]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ 恣意の -(2007/09/19(Wed) 23:23:51)
    >過去ログを検索しましたが、なくなってしまっていました(TT)
    過去ログは以下ですかね?(過去ログ18)

    ・時計回り、反時計回り判定
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=6130&KLOG=18

    # ちなみにアドバイスはできないので、他の人よろしくー
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7931  Re[1]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ れい -(2007/09/20(Thu) 01:09:23)
    No7927 (セイン さん) に返信
    > 上のがいせきの合計値のXYZをすべて足すと0なので、面積や座標の回転方向が求まりませんでした><
    > ご教授お願いします。

    「がいせきの合計値」というのが何をさすのか分かりませんが。
    面積であるところの外積の絶対値の合計も、
    外積のベクトルとしての総和も、0ではありません。
    普通に面積も法線ベクトルも求まってるように見えますが。
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7940  Re[2]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/20(Thu) 11:58:28)
    2007/09/20(Thu) 13:23:43 編集(投稿者)

    No7931 (れい さん) に返信
    > ■No7927 (セイン さん) に返信
    >>上のがいせきの合計値のXYZをすべて足すと0なので、面積や座標の回転方向が求まりませんでした><
    >>ご教授お願いします。
    >
    > 「がいせきの合計値」というのが何をさすのか分かりませんが。
    > 面積であるところの外積の絶対値の合計も、
    > 外積のベクトルとしての総和も、0ではありません。
    > 普通に面積も法線ベクトルも求まってるように見えますが。
    >

    あれ?すいません。もう一度
    [A] {x=45.702596842378597 y=49.072971846168883 z=1.0000000000000000 }
    [B] {x=46.820140424800996 y=50.190515428591283 z=1.0000000000000000 }
    [C] {x=46.820140424800996 y=50.190515428591283 z=-1.0000000000000000 }
    [D] {x=45.702596842378597 y=49.072971846168883 z=-1.0000000000000000 }


    ベクトル
    [AB] {x=1.1175435824223996 y=1.1175435824223996 z=0.00000000000000000 }
    [AC] {x=1.1175435824223996 y=1.1175435824223996 z=-2.0000000000000000 }
    [AD] {x=0.00000000000000000 y=0.00000000000000000 z=-2.0000000000000000 }


    外積
    [AB×AC] {x=-2.2350871648447992 y=2.2350871648447992 z=0.00000000000000000 }
    [AC×AD] {x=-2.2350871648447992 y=2.2350871648447992 z=0.00000000000000000 }


    外積の計算結果
    sum {x=-1.1175435824223996 y=1.1175435824223996 z=0.00000000000000000 }

    sum.x + sum.y + sum.z = 0;

    計算結果そのものが間違っているんでしょうか?
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7947  Re[3]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ れい -(2007/09/20(Thu) 13:28:59)
    2007/09/20(Thu) 13:38:39 編集(投稿者)
    2007/09/20(Thu) 13:35:34 編集(投稿者)

    No7940 (セイン さん) に返信
    > あれ?すいません。もう一度
    > [A] {x=45.702596842378597 y=49.072971846168883 z=1.0000000000000000 }
    > [B] {x=46.820140424800996 y=50.190515428591283 z=1.0000000000000000 }
    > [C] {x=46.820140424800996 y=50.190515428591283 z=-1.0000000000000000 }
    > [D] {x=45.702596842378597 y=49.072971846168883 z=-1.0000000000000000 }
    > ↓
    > 計算結果
    > sum {x=-1.1175435824223996 y=1.1175435824223996 z=0.00000000000000000 } GLPoint3
    >
    > sum.x + sum.y + sum.z = 0;
    >
    > 計算結果そのものが間違っているんでしょうか?

    前のスレッドの面積の話は読んでないので、
    sumというのが何をもとめてるのか知りませんが。

    手計算だと

    AB=(1.1,1.1,0)
    AC=(1.1,1.1,-2)
    AD=(0,0,-2)

    ABxAC = (-2.2,2.2,0)
    ACxAD = (-2.2,2.2,0)

    なので法線ベクトルは
    (-2.2,2.2,0)/|(-2.2,2.2,0)| = (-1,1,0)/ sqrt(2)
    面積は
    |(-2.2,2.2,0)|/2+|(-2.2,2.2,0)|/2 = 2.2*sqrt(2)
    ですね。

    というか、何をバグといってるのかわからないです。

    外積や法線ベクトル、面積を求める方法自体は間違っていません。
    セインさんの実装に関しては、ソースが無いとわかりません。

    #計算間違ってたのを直しました…
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7948  Re[3]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ れい -(2007/09/20(Thu) 13:40:12)
    No7940 (セイン さん) に返信
    > 2007/09/20(Thu) 13:23:43 編集(投稿者)
    > 外積
    > [AB×AC] {x=-2.2350871648447992 y=2.2350871648447992 z=0.00000000000000000 }
    > [AC×AD] {x=-2.2350871648447992 y=2.2350871648447992 z=0.00000000000000000 }

    ここまではOKですが。

    > 外積の計算結果
    > sum {x=-1.1175435824223996 y=1.1175435824223996 z=0.00000000000000000 }

    これはなんですか?
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7949  Re[4]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/20(Thu) 14:00:33)
    2007/09/20(Thu) 14:37:50 編集(投稿者)
    2007/09/20(Thu) 14:10:18 編集(投稿者)
    No7948 (れい さん) に返信
    > ■No7940 (セイン さん) に返信
    >>2007/09/20(Thu) 13:23:43 編集(投稿者)
    >>外積
    >>[AB×AC] {x=-2.2350871648447992 y=2.2350871648447992 z=0.00000000000000000 }
    >>[AC×AD] {x=-2.2350871648447992 y=2.2350871648447992 z=0.00000000000000000 }
    >
    > ここまではOKですが。
    >
    >>外積の計算結果
    >>sum {x=-1.1175435824223996 y=1.1175435824223996 z=0.00000000000000000 }
    >
    > これはなんですか?
    >

    れいさんご指摘ありがとうございます。
    れいさんが求めた、
    >なので法線ベクトルは
    >(-2.2,2.2,0)/|(-2.2,2.2,0)| = (-1,1,0)/ sqrt(2)
    >面積は
    >|(-2.2,2.2,0)|/2+|(-2.2,2.2,0)|/2 = 2.2*sqrt(2)
    >ですね。


    この値の求め方がわかっておりませんでした。
    どのようにして法線と面積を求められたのでしょうか?

    今の私のプログラムは、
    外積を求めた後の計算式が、まったくまちがっていたようです。申し訳ございません。

    求めた外積の値から
    回転方向・ベクトル・面積を出す方法を教えていただけないでしょうか?
    よろしくお願いします。
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7951  Re[5]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/20(Thu) 15:05:31)
    自分で面積を調べてみました。
    http://www12.plala.or.jp/ksp/formula/mathFormula/html/node63.html

    A*B=(AyBz−AzBy,AzBx−AxBz,AxBy−AyBx)

    面積の求め方
    S=|A*B|


    A*Bをすると、(0,0,0)になってしまうと思うのですが、考え方が間違っているのでしょうか?


記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7956  Re[6]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ Tom Yama -(2007/09/20(Thu) 16:13:36)
    No7951 (セイン さん) に返信
    > [A] {x=43.435263644876358 y=46.805638648666644 z=0.050000000745058060 }
    > [B] {x=46.820140424800996 y=50.190515428591283 z=0.050000000745058060 }
    > [C] {x=46.820140424800996 y=50.190515428591283 z=-0.050000000745058060 }
    > [D] {x=43.435263644876358 y=46.805638648666644 z=-0.050000000745058060 }
    >
    > この座標のベクトルは約
    > ベクトル
    AB 3.4 3.4 0.00
    AC 3.4 3.4 -0.10
    AD 0.0 0.0 -0.10
    >
    > 外積
    AB×AC -0.34 0.34 0.00
    AC×AD -0.34 0.34 0.00

    面積は、外積ベクトルの長さの総計の半分だから、0.48ですね。
    ※面倒くさいから、計算式は、省略
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7959  Re[7]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/20(Thu) 16:36:37)
    2007/09/20(Thu) 16:38:29 編集(投稿者)

    >>外積
    > AB×AC -0.34 0.34 0.00
    > AC×AD -0.34 0.34 0.00
    >
    > 面積は、外積ベクトルの長さの総計の半分だから、0.48ですね。
    > ※面倒くさいから、計算式は、省略

    Tom Yamaさん ありがとうございます。
    外積ベクトルの長さを計算してみました。

    ベクトルの長さ
    sqrt((x)*(x)+(y)*(y)+(z)*(z))

    AB×AC = 0.480832611
    AC×AD = 0.480832611

    これの総計の半分ってことは0.48
    同じ答えになりました。ありがとう^^

    法線ベクトルの途中の計算も、教えていただけると幸いです。
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7961  Re[8]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ Tom Yama -(2007/09/20(Thu) 16:44:21)
    No7959 (セイン さん) に返信
    > 法線ベクトルの途中の計算も、教えていただけると幸いです。
    ???

    >>外積
    > AB×AC -0.34 0.34 0.00
    > AC×AD -0.34 0.34 0.00
    が、法線ベクトルですが。。。
    「途中の計算」って、何のこと?
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7963  Re[9]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/20(Thu) 16:50:15)
    No7961 (Tom Yama さん) に返信
    > ■No7959 (セイン さん) に返信
    >>法線ベクトルの途中の計算も、教えていただけると幸いです。
    > ???
    >
    > >>外積
    >>AB×AC -0.34 0.34 0.00
    >>AC×AD -0.34 0.34 0.00
    > が、法線ベクトルですが。。。
    > 「途中の計算」って、何のこと?

    座標が4つ(以上に増えたときにも対応できる)の面の法線がほしいのですが...
    ((AB×AC).x + (AC×AD).x, (AB×AC).y + (AC×AD).y, (AB×AC).z + (AC×AD).z)

    -0.68, 0.68, 0

    この法線が多角形の法線ってことでよろしいのでしょうか?
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7965  Re[10]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ Tom Yama -(2007/09/20(Thu) 17:04:18)
    No7963 (セイン さん) に返信
    > 座標が4つ(以上に増えたときにも対応できる)の面の法線がほしいのですが...

    以前のスレに書いてあるんだけどなぁ〜。
    > ・時計回り、反時計回り判定
    > http://bbs.wankuma.com/index.cgi?mode=al2&namber=6130&KLOG=18

    れいさんの一番最後の発言(7312 / inTopicNo.44)を読み直して、
    それでも理解できないところがあれば、ご質問ください。
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7970  Re[11]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/20(Thu) 17:46:57)
    2007/09/20(Thu) 17:48:56 編集(投稿者)

    No7965 (Tom Yama さん) に返信
    > ■No7963 (セイン さん) に返信
    >>座標が4つ(以上に増えたときにも対応できる)の面の法線がほしいのですが...
    >
    > 以前のスレに書いてあるんだけどなぁ〜。
    >>・時計回り、反時計回り判定
    >>http://bbs.wankuma.com/index.cgi?mode=al2&namber=6130&KLOG=18
    >
    > れいさんの一番最後の発言(7312 / inTopicNo.44)を読み直して、
    > それでも理解できないところがあれば、ご質問ください。
    >



    >凸な3点を取得できればいいことになります。
    >一次関数の最大値・最小値で探すという方法があります。

    複数の点のうち、一番X座標の大きな点を取る。
    そのひとつ前の点と最大の点と次の点を3つを使って、法線計算?

    3次元だと、3次元上の最大の点と、隣り合う2点を使えば、そこが必ずトツ型だから、
    その3てんをつかって計算すればOK?

    ということでしょうか?
    (3次元の場合X座標がすべて同一の座標が来る可能性があるので、
    X、Y 最低でも2点見てあげるだけでOK?)
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7974  Re[12]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ Tom Yama -(2007/09/20(Thu) 18:24:27)
    No7970 (セイン さん) に返信
    > X、Y 最低でも2点見てあげるだけでOK?)
    そうですよねぇ〜、OKなんでしょか?(ヲィ!

    とりあえず、ダメな場合は思いついてませんが、十分だという確信が持てているわけでもありません。
    ※散々、えらそうなこと言ってて、すみません。


    P.S. ところで、
    > 2) 外積を用いた符号付面積による方法
    2次元の場合は、これでも計算できるのですが、
    3次元の場合でも、使える方法なんでしょうか?
    やり方が、全然、思いつかないのですが、、、どなたか、ご存知ないでしょうか?
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7978  Re[13]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/20(Thu) 19:00:57)
    No7974 (Tom Yama さん) に返信
    > ■No7970 (セイン さん) に返信
    >>X、Y 最低でも2点見てあげるだけでOK?)
    > そうですよねぇ〜、OKなんでしょか?(ヲィ!
    >
    > とりあえず、ダメな場合は思いついてませんが、十分だという確信が持てているわけでもありません。
    > ※散々、えらそうなこと言ってて、すみません。
    >
    >
    > P.S. ところで、
    >>2) 外積を用いた符号付面積による方法
    > 2次元の場合は、これでも計算できるのですが、
    > 3次元の場合でも、使える方法なんでしょうか?
    > やり方が、全然、思いつかないのですが、、、どなたか、ご存知ないでしょうか?


    >>>(3次元の場合X座標がすべて同一の座標が来る可能性があるので、
    >>>X、Y 最低でも2点見てあげるだけでOK?)

    3点の合計が一番大きな点をピックアップするようにすれば、法線に必要な3点を取ってくることができました。

    Tom Yama さんと同じことかもしれませんが、
    この3点から時計回り反時計回りって判断できると思いますか?
    3次元なので、面積による方法が使えないと思うのですが・・・
    どなたかご存知でしたら教えてください。
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7982  Re[14]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ Tom Yama -(2007/09/20(Thu) 19:54:45)
    No7978 (セイン さん) に返信
    > この3点から時計回り反時計回りって判断できると思いますか?
    この質問に答える前に、

    「時計回り反時計回り」というのは、「視線」に対して相対的に決まるものだということが、わかっておられますか?

    要するに、ある向きから多角形を見たときに、「反時計回り」に見える場合、
    その反対側に回り込んで、同じ多角形を見ると、「時計回り」に見える

    って、単なる、当たり前の話なんですが。。
    ※ここまで言えば、答えもわかります、よね?

    ちなみに、2次元の場合に「視線」の話が出てこないのは、みなさん、暗黙の内に1つの視線が設定しているからです。
    ※まあ、普通、紙の裏から透かして見るヤツなんざぁ、おらんわな。
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7983  Re[15]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/20(Thu) 20:52:40)
    No7982 (Tom Yama さん) に返信
    > ■No7978 (セイン さん) に返信
    >>この3点から時計回り反時計回りって判断できると思いますか?
    > この質問に答える前に、
    >
    > 「時計回り反時計回り」というのは、「視線」に対して相対的に決まるものだということが、わかっておられますか?
    >
    > 要するに、ある向きから多角形を見たときに、「反時計回り」に見える場合、
    > その反対側に回り込んで、同じ多角形を見ると、「時計回り」に見える
    >
    > って、単なる、当たり前の話なんですが。。
    > ※ここまで言えば、答えもわかります、よね?
    >
    > ちなみに、2次元の場合に「視線」の話が出てこないのは、みなさん、暗黙の内に1つの視線が設定しているからです。
    > ※まあ、普通、紙の裏から透かして見るヤツなんざぁ、おらんわな。

    暗黙的に、上から下に見てるから、時計回り・反時計回りの概念があるのであって、
    3D空間上では、その分類そのものがないということでしょうか?
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7994  Re[16]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ Tom Yama -(2007/09/20(Thu) 23:08:15)
    No7983 (セイン さん) に返信
    > 3D空間上では、その分類そのものがないということでしょうか?
    何で、そっちの方に行くかな?

    ないんだったら、こんな仄めかすような言い方はせずに、はっきりないって、言いますが。
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■8014  Re[14]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ y4yama -(2007/09/21(Fri) 11:01:37)
    No7978 (セイン さん) に返信
    > 3点の合計が一番大きな点をピックアップするようにすれば、法線に必要な3点を取ってくることができました。

    へこを含む時に、「3点の合計が一番大きな点」では、全くNG!ですヨ!
    例)X,Yで
    1 0,0
    2 8,1
    3 7,2
    4 9,3
    5 2,4
    6 10,5
    7 0,6
    8 0,0 =pt1
    解決策を聞かないでください。既にれいさんがお答えです

    > 3次元なので、面積による方法が使えないと思うのですが・・・
    既に私は、答えています(過去)。セイン さん、注意力(か理解力)が不足過ぎです

    以下は復習(Tom Yama さんへの回答も含み)
    個々のがいせきは、3D上のベクトルであり、へこを含む時には、ある向き(V1)と、それの反対向き(= -V1)の
    どちらかです。
    i,j,k成分別に和をとれば、出てきたベクトルは、V1か -V1を向いていて、その大きさ/2が面積になります
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 >>

パスワード/

- Child Tree -