No More Retake

3DCG屋さん向けTips&Referenceサイト

メニュー

数学:内積ってなんぞ? その3(大きさ編)

前回に引き続き、内積についてです。

前回は内積を使って角度を知る方法についてでしたが、今回はベクトルの大きさについてです。
内積を上手に使うと、任意のベクトルが別のベクトルに落とす影の大きさを知ることができるのです。

・・・なんのこっちゃですかね。

初回のトロッコの例で、斜めに押す力(ベクトルa)の中にトロッコを動かす力(ベクトルb)がどれだけ含まれているかを求めました。cosを使って|a|cosθでしたね。

数学:内積ってなんぞ? その3(大きさ編)

この|a|cosθの値を知りたい時にも内積が使える、そういうことです。

数学:内積ってなんぞ? その3(大きさ編)

内積の定義式は、|a||b|cosθでしたね。
ここで、ベクトルbが大きさ1のベクトル(単位ベクトル)だった場合を考えてみます。
内積の式はこう書けます。

数学:内積ってなんぞ? その3(大きさ編)

内積はベクトルの各成分を掛けて足すことでも求められます。
おさらいすると、内積はベクトルの各成分を使って、このように定義されます。

数学:内積ってなんぞ? その3(大きさ編)

つまり、正規化してないベクトルaと、正規化したベクトルbの各成分を掛けて掛けて足せば、|a|cosθが求められる、と。

数学:内積ってなんぞ? その3(大きさ編)

 

この|a|cosθとはなんじゃ?
最初に書きました通りこれは、あるベクトルが別の単位ベクトルに落とす影の大きさと見ることができます。

数学:内積ってなんぞ? その3(大きさ編)

また違う見方をすると、あるベクトルに含まれる任意の単位ベクトル方向の成分とも言えるかもしれません。

数学:内積ってなんぞ? その3(大きさ編)

さて、こんなもの求めてどうすんじゃ?、と思うかもしれませんが、案外使い道があるものです。

3DCGでの例ですが、以前このサイトで車輪のリグについて考察した時、この内積の特性を利用しました。

これは、車輪の移動距離と回転角を連動させて、正確に車輪の移動分だけ回転させる仕組みにしたもです。
一見うまく動いてるっぽいですが、問題がありました。
車輪が横にスライドした場合にもその移動距離分車輪が回転してしまうのです。
その対策として内積を使ってみました。
内積を用いて移動ベクトルから車輪の向いている方向のベクトルの大きさを求め、その分だけ車輪を回転させるようにしました。

数学:内積ってなんぞ? その3(大きさ編)

これで、一応は車輪が横滑りした際にも、過剰に回転することはなくなりました。
あまり、よい例じゃないかもしれませんが、ともかく使い道はありました、と。

あと、一度も使ったことないけど、自分自身の内積をとると、絶対値を計算するのと同じ結果が得られます。


 

さて、内積について3DCGと絡めて、数回に分けて書いてみましたが、それもここまで。
内積についてというよりは、内積の活用法だったかもしれませんね。
もっと知りたいという方にとっては物足りない内容だったかもしれませんが、CG屋としてはこれで必要十分と思った次第です。
(内積空間とか手に負えませんし)
何か書き忘れがあったら、追記します。

ともかく、お疲れ様でしたm(_ _)m

おかしなところがあったら、こっそり教えてください。
しれっと直します。

 

数学:内積ってなんぞ? その1(物理と導入編)

数学:内積ってなんぞ? その2(角度とCG編)

 

 

関連記事

  1. 2014.05.05

    toxik:[Switcher]
  2. 2014.09.03

    Vimeo

コメントをお待ちしております

このサイトについて

3DCG Tipsサイト。Houdiniの記事が多めです。

RSS

follow us in feedly

Archives

  • 2024 (4)
  • 2023 (2)
  • 2022 (9)
  • 2021 (14)
  • 2020 (46)
  • 2019 (17)
  • 2018 (33)
  • 2017 (29)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (55)

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

Houdiniを使えるようになる本


Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): Failed to enable crypto in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(http://api.facebook.com/restserver.php?method=links.getStats&urls=http%3A%2F%2Fnomoreretake.net%2F2015%2F12%2F02%2Fwhat_is_dotprocudt_component%2F): failed to open stream: operation failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): Failed to enable crypto in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fnomoreretake.net%2F2015%2F12%2F02%2Fwhat_is_dotprocudt_component%2F): failed to open stream: operation failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132