singleRow と行列を乗算するには、C では関数を作成し、Java では Matrix でパブリック静的関数を作成します
C で
singleRow multiply(singleRow m1, Matrix m2) { singleRow res; res.a1 = (m1.a1 * m2.a1.a1) + (m1.a2 * m2.a2.a1) + (m1.a3 * m2.a3.a1); res.a2 = (m1.a1 * m2.a1.a2) + (m1.a2 * m2.a2.a2) + (m1.a3 * m2.a3.a2); res.a3 = (m1.a1 * m2.a1.a3) + (m1.a2 * m2.a2.a3) + (m1.a3 * m2.a3.a3); return res; }
Java の場合
class Matrix { public static singleRow multiply(singleRow m1, Matrix m2) { singleRow res = new singleRow(0, 0, 0); res.a1 = (m1.a1 * m2.a1.a1) + (m1.a2 * m2.a2.a1) + (m1.a3 * m2.a3.a1); res.a2 = (m1.a1 * m2.a1.a2) + (m1.a2 * m2.a2.a2) + (m1.a3 * m2.a3.a2); res.a3 = (m1.a1 * m2.a1.a3) + (m1.a2 * m2.a2.a3) + (m1.a3 * m2.a3.a3); return res; } }
画面の高さ = 22、幅 = 80 とします
総面積 = 1760
A = 0、B = 0
AはX軸の回転の角度、BはZ軸の回転の角度、Y軸で円を回転させるとドーナツになります
ϕはY軸、θは円の作成
1760 の配列を 2 つ作成します。1 つは印刷するドーナツ文字を格納し、もう 1 つは z インデックスを double 型で格納します
double zBuffer[1760]; char buffer[1760];
printf("x1b[2J");
で新しい画面を作成します
そして無限ループを追加します
while (1) { }
以上が昔の耳のようなドーナツを解説 その2の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。