その原因は、立体の角度情報の保持方法にあります。 つばささんのプログラムでは、 R1=R1-SY/12 R2=R2+SX/12 という処理が行われていますが、"それが"間違いです。 例えば、普通だと、 「x軸を中心に90度回転させてからy軸を中心に90度回転させる」のと、 「y軸を中心に90度回転させてからx軸を中心に90度回転させる」のでは 結果が違ってきますよね?(サイコロなんかを回転させてみるとわかりやすいです) ところがつばささんのプログラムでは、この二つの動作の結果がどちらも同じになってしまいます。 これは、z軸中心の回転、すなわちR3を考えたところで、どうにもなりません。 (頑張ればどうにかなるのかもしれませんが、僕の頭では無理です)