Играли с некоторым базовым 3D. Я пытаюсь сохранить математику относительно просто, как я только в году 9.Java - Вращающиеся точки по кругу
информации Справочной информации: У меня есть 3 int[]
переменных, называемые xpoints
, ypoints
и zpoints
. Я думал о том, чтобы поместить их в один список под названием nodes
, но решил, что это нелегко.
Первый Forumla я попытался было:
xpoints[i] = (int) (r*Math.cos(Math.toRadians(d)));
ypoints[i] = (int) (r*Math.sin(Math.toRadians(d)));
Это работало отлично для вращения куба вокруг одной оси, но не любые другие. Я нашел формулу, которая выглядела многообещающей для нескольких осей, но не может заставить ее работать. Кажется, что лица кажутся слегка сжатыми во время каждого цикла, заканчиваясь в одной точке (в центре).
xpoints[i] = (int) (x * cos_t - y * sin_t)
ypoints[i] = (int) (y * cos_t + x * sin_t)
Полнофункциональный применения математики:
public void rotateZ(double theta){
theta = Math.toRadians(theta);
double cos_t = Math.cos(theta);
double sin_t = Math.sin(theta);
for (int i = 0; i < xpoints.length; i++){
double x = xpoints[i] - x_off;
double y = ypoints[i] - y_off - ypoints_mod[i];
xpoints[i] = (int) (x * cos_t - y * sin_t) + x_off;
ypoints[i] = (int) (y * cos_t + x * sin_t) + y_off + ypoints_mod[i];
System.out.println(x+", "+y);
}
}
Если вам нужно больше информации, пожалуйста, дайте мне знать (не совсем уверен, как это слово)
Спасибо,
Ха-ха спасибо, посмотрел поворот эйлера. Заинтересован, но выглядит очень запутанным. Знаете ли какие-нибудь места, которые его немного упрощают? (Или это действительно так сложно :)) * Голосовать за поворот эйлеров, выглядит очень удобно – Andy