マウスドラッグでキューブを回転できます。 前回は床の真上に光源があるという都合のいい前提だったので、各頂点のx,z座標がそのまま床の座標に対応していたが、今回は光源の向きが斜めで影が映る面も二つあるので、光源と頂点を結ぶ直線が面と交差する点を求める必要がある。 直線の方程式は P = A + tV (A:直線上の1点、V:方向ベクトル) 面の方程式は N・(P - P0) = 0 (N:法線ベクトル, P0:平面上の1点) この二つの式からまずtを求めて、直線と平面の交点であるPを求める。 (この例ではAは光源の座標、Vは光源と頂点を結ぶベクトル) package { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.geom.*; import org.papervisi