スタートページ>
Javascript>
美しい数式グラフ>
3次元グラフ
3次元グラフの留意事項
3次元グラフとは、多数の点(u,v,w)を2次元のcanvasに投影して描画するのですから、かなり無理があります。
ここでは、このシリーズでの3次元グラフについて、基本的な事項を説明します。
3次元グラフは、軸の設定(見る方向)により、図が大きく変化します。それを理解するために、軸の角度をいろいろ変えて[実行]してみてください。
立方体の描画
3次元グラフを検討する以前に、ここでの3次元の座標系(u,v,w)と、それの画面表示のxy座標系の関係について説明します。
- 原点を中心として、x軸(aqua色)の正側から、時計回りに角度auの線(yallow線)をu軸、角度avの線(red線)をv軸とします。
- auとavは、ラジアンで表現します。右図の場合は、u軸はx軸の右上方向(逆時計回り)に15°なので、au = -(15/180)*Math.PI になります(Math.PIはπ(180°)を示します)。同様にv軸の av = -(135/180)*Math.PI は、135=90+45ですから、y軸の左45°の線になります。
- w軸は鉛直方向、すなわちy軸と一致させます。
- 数学的証明は省略しますが、点(u,v,w)を(x,y)に変換するには、次の公式があります。
x = u*cos(au) + v*cos(av)
y = -u*sin(au) - v*sin(av) + w
- 右図は、対角線(0,0,0)~(1,1,1)の立方体を描画したものです。
cos(au) = -cos(10°)= 0.985, sin(au) = -0.174
cos(av) = -cos(135°)= -sin(45°)=-0.707, sin(au) = -0.707
点(1,0,0)→u=1, v=0, w=0
→x=1* 0.985 + 0*(-0.707)=0.985, y=-1*(-0.174) - 0*(-0.707) + 0=0.174
→(0.985, 0.174)
点(1,1,1)→u=1, v=1, w=1
→x=1* 0.985 + 1*(-0.707)=0.278, y=-1*(-0.174) - 1*(-0.707) + 1=1.881
→(0.278, 0.174)
となります、
- 典型的な角度設定
au = 0; av = -135°または au = 0; av = -45° u,vの値が大きくなると上側になります。
au = 45°, av = 135° u,vの値が大きくなると下側になります。
高さの表現
- この例では、-4 ≦ u ≦ 4, -4 ≦ v ≦ 4 の範囲で w = u + v の計算をしているのですから、u = 4, v = 4のとき、すなわち点Pのときに、wは最大値8になるのは明らかです。その点はQになります。P→Qの長さがwの値です。
- 点Qを水平にみてy軸の目盛りを見て、それがwの値がとするのは誤りです。
「w軸はy軸と一致」といいましたが、それは「方向が同じ」ということであり、(u,v,w)のwがy軸の目盛りと一致するのではありません。これは当然のことですが、誤解しやすいことです。
塗色について
一般に、3次元グラフは、u,v,wの関係を直感的に把握するのは難しいものです。
それで、このシリーズでは、おおよそのイメージを色で表すことにしました。
u,v,wのいずれかの値の大小により、ほぼ7等分して、
小=blue→green→lime→aqua→yellow→fuchsia→red=大
に色分けしています。