ホームページ > バックエンド開発 > C++ > 昔の耳のようなドーナツを解説 その2

昔の耳のようなドーナツを解説 その2

Barbara Streisand
リリース: 2024-12-13 02:07:14
オリジナル
538 人が閲覧しました

Explaining donut like ears old Part-2

行列乗算

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 サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート