Untuk mendarab satuRow dan matriks, dalam C kita akan mencipta fungsi dan dalam Java, kita akan mencipta fungsi statik awam dalam Matriks
Dalam 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; }
Di Jawa
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; } }
Biar ketinggian skrin = 22 dan lebar = 80
jumlah keluasan = 1760
A = 0, B = 0
A ialah sudut untuk putaran pada paksi-X, B ialah sudut untuk putaran pada paksi-Z, apabila kita memutarkan bulatan pada paksi-Y, ia menjadi donat
ϕ untuk paksi Y, θ untuk mencipta bulatan
buat 2 tatasusunan 1760, 1 yang menyimpan aksara donat untuk dicetak, satu lagi yang menyimpan indeks z mungkin dalam jenis berganda
double zBuffer[1760]; char buffer[1760];
buat skrin baharu dengan printf("x1b[2J");
dan tambah gelung tak terhingga
while (1) { }
Atas ialah kandungan terperinci Menjelaskan donat seperti telinga Part-2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!