解決できないように見える 3D 数学の問題があります。
3点のデータがあります。データは平面上の (2D) 座標であり、3D 空間のどこかに浮かんでいます。投影の(2D)座標も知っています。その結果、次のデータ配列が得られます。
[[[x1,y1], [px1,py1],
[[x2,y2], [px2,py2],
[[x3,y3], [px3,py3]]
法線 (x1 など) の座標は平面上の座標を表し、もう一方 (px1 など) は投影された座標を表します。
私がやりたいことは、新しい2D 座標 ([x4,y4]) を投影することです。
.
私がこれまでに試したこと:
もちろん、投影用の目が必要なので、[xe,ye,-1] に設定します。xeとyeは知られています。(写真参考なので、目は写真中央に合わせました。)
目の下に投影面 (z=0) を配置しました。これにより、次の投影座標が得られます。
[[[x1,y1], [px1,py1,0],
[[x2,y2], [px2,py2,0],
[[x3,y3], [px3,py3,0]]
私はその平面について何も知らないので、平面上の座標に対して同じことを行うことはできません。
また、目から投影座標を通る線のパラメーター化された式を作成できることもわかりました。line1 の場合は次のようになります。
line1x = xe+(px1-xe)*t1
line1y = ye+(py1-ye)*t1
line1z = -1+t1 // = -1+(0--1)*t1
3D での点間の距離もわかっています。それは2Dでも同じです。つまり、point1 と point2 の間の距離は sqrt((x1-x2)^2+(y1-y2)^2) になります。
また、線 (line1 と line2) の間の距離もいつでもわかります。つまり、sqrt((line1x-line2x)^2+(line1y-line2y)^2+(line1z-line2z)^2) です。
しかし、ここから先の行方はよくわかりません... あるいは、これが正しいルートなのかどうかさえもわかりません。
.
私がやりたいことを理解していただき、私を助けていただけることを願っています。
前もって感謝します!