cuốn sách gpt4 ai đã làm

android — Dịch chuyển các đỉnh 3D dọc theo mặt phẳng 2D bằng cách sử dụng các chuẩn mực

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 06:09:49 29 4
mua khóa gpt4 Nike

Tôi có một hình tam giác có các đỉnh tùy ý nằm trong không gian 3D.

Tôi biết thật dễ dàng để tìm thấy loại hình tam giác này bằng cách thực hiệnkhối tâm:

trọng tâm float[3] = { 0, 0, 0 };

vì (int i = 0; i < 3; ++i) {
vì (int j = 0; j < 3; ++j) {
centroid[i] += điểm[j][i];
}
centroid[i] /= 3.0;
}

phương trình mặt phẳngCũng dễ tìmBình thường:

crossProduct(điểm[1] - điểm[0], điểm[2] - điểm[0]);

Có một cách rất đơn giản để chuyển đổi các đỉnh từkhối tâmchuyển đitránh xa, nhưng điều đó quá tuyến tính. Tôi chỉ có thể di chuyển con trỏ qua lại.

Tôi cần công thức nào để di chuyển một đỉnh tự do trên trục X/Y giả được hình thành từ góc của tam giác vuông góc?

Để tham khảo, đối với vectơ và ma trận tôi đã sử dụng C++QT. Tôi đang sử dụng cơ bản OpenGL Để kết xuất.

câu trả lời hay nhất

Để dựng các trục tọa độ trong mặt phẳng tam giác, bạn có thể sử dụng một trục từ tâm đến bất kỳ đỉnh nào giảX và trục tung pseudoY = pseudoX.cross.Normal.

Việc chọn các đỉnh làm vectơ cơ sở có vẻ tự nhiên. Nếu bạn muốn thêm một số ngẫu nhiên, hãy sử dụng cái này giảX Xoay bất kỳ góc nào và tạo lại một góc mới giả Y như sản phẩm chéo.

Một cách khác để tạo vectơ trong mặt phẳng này - chỉ từ pháp tuyến. Thành phần pháp tuyến có cường độ lớn nhất được chọn, đảo ngược và hoán đổi với thành phần có cường độ lớn thứ hai, sao cho thành phần nhỏ nhất bằng 0. Ví dụ, nếu

 |ny|>=|nz|>=|nx|
Vec = (0, nz, -ny)

Để ý Vec.dot.Normal = 0,Vì thế Vec nằm trong mặt phẳng tam giác

Về thuật toán - dịch chuyển các đỉnh 3D dọc theo mặt phẳng 2D bằng cách sử dụng các chuẩn mực, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/51411740/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress