コンテンツにスキップ

Topic:個別の数学に関する議論/3次元デカルト座標系の描き方/2/3

提供:ウィキバーシティ

まず…

[編集]

前回の記述以降、余裕を見ては計算、考察を続けていたのですが、いろいろ迷走したり、計算間違えしたり、矛盾にぶち当たったりと、いろいろあってまだ結論に達していないのですが、ここは少しやり方を変更したほうがいいように思えてきて、しかも迷走の結果かなりこの問題に関する見通しもできてきたので、今後はじっくりゆっくり亀の歩みで、確実に計算の正しさを確認しながら、少しずつゴールを目指していこうと思っています。

そこで…

[編集]

今回の起点はこの式なんです。

-2*Sqrt[2]*Cos[θ]^2*x^2+(y*Cos[θ]*(4*Sqrt[2]*Sin[θ]-Cos[θ]*Sqrt[Sin[θ]^2+1])+Cos[θ]*(2*Sqrt[2]*Sin[θ]^2+Cos[θ]^2))*x+y*Sin[θ]*(-2*Sqrt[2]*Sin[θ]^2-2*Sqrt[2]*y*Sin[θ]+y*Cos[θ]*Sqrt[Sin[θ]^2+1]-Cos[θ]^2) = 0

これは三実数変数 x,y,θ に関する述語命題,透視投影上のローカル y軸の長さの2倍がローカル z軸の長さ様(←長さそのものではありません。真上方向の長さとみていい値です)の値だとした時の x,y,θ の関係式,になります。

そしてもうひとつ,その前に導いたこの式。

x=-y*(Sin[θ]^2-2*Sqrt[2]*Sin[θ]+1)/(2*Sqrt[2]*Cos[θ])+Sqrt[Sin[θ]^2+1]/(2*Sqrt[2]) ………(1)

透視投影上のローカル y軸の長さの2倍がローカル x軸の長さ様の値だとした時の x,y,θ の関係式,ですね。

そしてここではもう,下の式の値を,上の式のxに代入しちゃうんです。するとθとyの2元方程式になって,yに関してはθの値に応じた2次方程式になります。それを書くとこう↓ですね。

1/4*((-Sqrt[2]-2*Sqrt[2]*Sin[θ]^2-Sqrt[2]*Sin[θ]^4+Sqrt[1+Sin[θ]^2]*(Sqrt[2]*Cos[θ]+Sqrt[2]*Cos[θ]*Sin[θ]^2))*y^2 +(-2*Sqrt[2]*Cos[θ]^2-4*Sin[θ]^2-2*Sqrt[2]*Cos[θ]^2*Sin[θ]^2-4*Sin[θ]^4+Sqrt[1+Sin[θ]^2]*(2*Sqrt[2]*Cos[θ]+2*Sqrt[2]*Cos[θ]*Sin[θ]^2))*y -Sqrt[2]*Cos[θ]^2-Sqrt[2]*Cos[θ]^2*Sin[θ]^2+Sqrt[1+Sin[θ]^2]*(Sqrt[2]*Cos[θ]^3+4*Cos[θ]*Sin[θ]^2)) = 0 ………(2)

そして我々が考えるθの条件として,

0 <= θ < Pi/2

というのがありましたから,それぞれのθに対して高々2つの実数のyがある。

そしてですね…

三角関数を纏めておく

[編集]

まず(2)の式は、Cos[θ]とSin[θ]を含んでいますが、Sinについては運良く、偶数乗のものしかないので一般的な意味でCosだけの式に変形できますね。

1/4*((-4*Sqrt[2]+4*Sqrt[2]*Cos[θ]^2-Sqrt[2]*Cos[θ]^4+Sqrt[2-Cos[θ]^2]*(2*Sqrt[2]*Cos[θ]-Sqrt[2]*Cos[θ]^3))*y^2+(-8+12*Cos[θ]^2-4*Sqrt[2]*Cos[θ]^2-4*Cos[θ]^4+2*Sqrt[2]*Cos[θ]^4+Sqrt[2-Cos[θ]^2]*(4*Sqrt[2]*Cos[θ]-2*Sqrt[2]*Cos[θ]^3))*y-2*Sqrt[2]*Cos[θ]^2+Sqrt[2]*Cos[θ]^4+Sqrt[2-Cos[θ]^2]*(4*Cos[θ]-4*Cos[θ]^3+Sqrt[2]*Cos[θ]^3)) = 0 ………(2)'

そして…

[編集]

0 <= θ < Pi/2 の範囲でθを考えると、それぞれのθの値に対して(2)'によって実数のyが0から2個求められる。そしてに(1)よってその時のxも出る。

つまり我々が簡単な図、三次元の矢印座標、x軸が真右、それと同じ長さのz軸が真上、その半分の長さのy軸がx軸とz軸のなす直角の2等分線、そういう図を描いたときは、実際には角θだけ真横から見下ろす方向になり、グローバル座標として、矢印座標の原点がそのグローバル座標の原点にあるとして、見る目がグローバル軸のマイナス方向にあるとして、ここで求めたグローバル座標x、yの地点に目、視点がある、これが事実であるということがわかる。

そして、まず、xとyとθの間にもう少し条件があったので、次の項目でそれをわかりやすく纏めておきます。

(1)∧(2)'以外のθに応じた条件

[編集]

Sin[θ]^6-4*Sqrt[2]*Sin[θ]^5+11*Sin[θ]^4-4*Sqrt[2]*Sin[θ]^3+Sin[θ]^2-1=0

の 61.76379°付近の解(61.76379…°)をAとすると、我々が考えるθは

0 <= θ < A

になります。

そこでこの範囲のθを3つの場合に分けて、θに応じた(1)∧(2)'以外の条件を示します。

0 <= θ < ArcSin[Sqrt[2]-1]=(24.46980…°)の時

[編集]

-Cos[θ]*(2*Sqrt[2]*Cos[θ]-Sqrt[Sin[θ]^2+1])/((Sin[θ]-(Sqrt[2]+1))*(Sin[θ]-(Sqrt[2]-1))) < y < -Sin[θ]

θ = ArcSin[Sqrt[2]-1]=(24.46980…°)の時

[編集]

y < -Sin[θ]=(1-Sqrt[2])=(-0.41421…)

ArcSin[Sqrt[2]-1]=(24.46980…°) < θ < A=(61.76379…°)の時

[編集]

Cos[θ]*Sqrt[Sin[θ]^2+1]/(Sin[θ]^2-2*Sqrt[2]*Sin[θ]+1) < y < -Sin[θ]

さて、いよいよ2次方程式を解きますが…

[編集]

まず(2)'式の自乗の係数、これが0になってしまうと1次以下の方程式になってしまいますよね。

-4*Sqrt[2]+4*Sqrt[2]*Cos[θ]^2-Sqrt[2]*Cos[θ]^4+Sqrt[2-Cos[θ]^2]*(2*Sqrt[2]*Cos[θ]-Sqrt[2]*Cos[θ]^3)

↑これですが…

これを0にした方程式を変形すると、

Sqrt[2-Cos[θ]^2]*(2*Sqrt[2]*Cos[θ]-Sqrt[2]*Cos[θ]^3) = 4*Sqrt[2]-4*Sqrt[2]*Cos[θ]^2+Sqrt[2]*Cos[θ]^4

これを満たすθは両辺を自乗した式も満たしますよね。

(Sqrt[2-Cos[θ]^2]*(2*Sqrt[2]*Cos[θ]-Sqrt[2]*Cos[θ]^3))^2-(4*Sqrt[2]-4*Sqrt[2]*Cos[θ]^2+Sqrt[2]*Cos[θ]^4)^2 = 0

そしてこれは左辺を因数分解すると、

-4*(Cos[θ]-1)*(Cos[θ]+1)*(Cos[θ]^2-2)^3 = 0

ここではθが0の時のみ問題になりますね。

そして(2)'にこの値を代入するとこの式は恒等的に0なってしまいます。

ですから2次方程式として扱えるのはθが0ではないとき、まずθが0の時の扱いを次の項目で検討してみます。

ところで…

[編集]

ここまで来て今、すごく重要な事に気づいたんですが、θが0なら、矢印座標のx軸とz軸は正確に直角、真横と真上に見えますよね。だとしたらこの時の見方を適切にとった場合が、私の求める、欲しい答えかもしれない…。今後もうちょっと検討してみます…。

θ=0

[編集]

では、θ=0の時の条件は…

  1. x = -y/(2*Sqrt[2])+1/(2*Sqrt[2])
  2. y < 0
  3. 0 < x < 1

ただ今項目では場合によっては3番目の条件を撤廃します。

さて、この場合は、矢印座標系のx-z平面は視線に対して直角ですから、一点透視図法になります。つまり常識的に目で見える範囲を画面にすると、画面中央が消失点で、考えている空間のグローバル座標では、原点(0,0,0)になります。改めて言いますが、我々はこのグローバル座標のyの値のマイナス方向から、グローバル系のx-z平面を見ているわけです。

ここで二つの式、関数を求めます。

まず、観察しているローカル矢印座標が見える視角の値をφとすると…

Tan[φ/2] = (1-x)/(-y) = (Sqrt[2]-4)/4*(1/y)-1/(2*Sqrt[2]) 「0 > y > 1-Sqrt[2] の時」

Tan[φ/2] = x/(-y) = -1/(2*Sqrt[2])*(1/y)+1/(2*Sqrt[2]) 「1-Sqrt[2] >= y の時」

これはy=0の時∞からyの値が負方向の無限大に向かって1/(2*Sqrt[2])になっていく単調増加の関数ですね。

そしてこの視角画面上、矢印ローカル座標の占める大きさをyの関数にします。

まずこれ↓ですね。

0/W = Sqrt[2]/(y+2*Sqrt[2]-1) 「0 > y > 1-Sqrt[2] の時」

0/W = Sqrt[2]/(-y+1) 「y <= 1-Sqrt[2] の時」

この関数は、yが0の時(4+Sqrt[2])/7で、yが小さくなって1-Sqrt[2]の時最大値1、その後yが-∞に向かうにつれて小さくなり、0に近づいていきます。

さて,そこで…

[編集]

θが0の時はほとんど答えが出たといっていいのですが、しかしここで見える透視投影はまさに我々が欲しい図そのものなんですが、しかし、画角と対象の大きさにおいて、妥当な状態というのはあるでしょう。結局今回の場合、多くの場合は広角画面すぎるように見えますしね。

そこで…ちょっとジャンルが変わる話になりますが、我々が外界を見るときの画角ってどのくらいか?これをちょっと実際に簡単な実験をして測定してみようと思います。

人の目の視角は98°くらい?

[編集]

具体的にどうしたかの詳細は省略しますが、人間の視角、98°ぐらいかな、という結論が出ました。調べれば誰かが検討したそういう調査の数字は出てきそうですが、今回はこの数値で検討します。しかし実際は場合によってはもう少し画角があるような気がする…。

そこでそうだ、消失点の位置をここで考えれば…

[編集]

つまりこの話の結論はこうなるのではないだろうか?(x,y,θ)=(1/2,1-Sqrt[2],0)の時、消失点は見える矢印座標の真ん中にある。その時の見ているときの画角は、 ArcTan[1/(2*(Sqrt[2]-1))]*2=100.72145…°。ただこの値は、矢印座標の大きさを画角のへりにしているから、実際にはもう少し大きい画角で見ているだろう。これをyの最大値にして、このあとyが負の無限大に向かって小さくなっていくと、 x = z = -y/(2*Sqrt[2])+1/(2*Sqrt[2]) で決める座標の位置に視点を置いてグローバルy軸の正方向を見ていると、見える透視投影の消失点は、矢印ローカル座標y軸、つまり右斜め上を向いている長さ1/2のy矢印が向いている方向、直線状を、どんどん右上に向かうことになるだろう。そして基本1点透視の消失点は画面中央にあるので、我々が見る矢印3本の図はどんどん左下に移動していく。ただしそれとともに画角も小さくなるので、例えば画角を最初の値にした場合どうなるか、今回は検討していないけど、今回は考えません、省略です。…そして矢印3本の座標図は画面の中で小さくなっていく。消失点が右上方向無限遠に行ったとき、一種の極値で現実には諸事情で考えにくいけど、と、いうのは消失点が画面中央にあることを前提に話をしていますからね、しかしこの極値で矢印座標系の大きさは0になるけど、画角は極値のArcTan[1/(2*Sqrt[2])]*2だからそれ程不自然な事態ではない…、しかしその場合は平行投影で考えた議論と同様の考え方、実際には少し扱いが違いますが、平面図上に平行四辺形を描く、図の描き方で利用することができる。

…と、急転直下ですが、私の議論はここで終了させます。と、いうのは自分自身で満足、納得のいく結論が出ましたからね。