Программно создать 3D-призму по расположению ее вершин.C#

Место общения программистов C#
Ответить
Anonymous
 Программно создать 3D-призму по расположению ее вершин.

Сообщение Anonymous »

Я работаю над проектом в Unity 4.6. Мне интересно, есть ли простой способ программно установить расположение вершин. В настоящее время мой код выглядит так (C#):

Код: Выделить всё

public void createPoints(float x, float y, float z) {
point [0] = new Vector3 (x, y, z);
point [1] = new Vector3 (x, y, -z);
point [2] = new Vector3 (x, -y, z);
point [3] = new Vector3 (x, -y, -z);
point [4] = new Vector3 (-x, y, z);
point [5] = new Vector3 (-x, y, -z);
point [6] = new Vector3 (-x, -y, z);
point [7] = new Vector3 (-x, -y, -z);
}
Где x, y и z — заранее определенные значения, а точка — Vector3[] (массив). Центр призмы должен быть точкой 0,0,0 (

Код: Выделить всё

Vector3(0,0,0)
в Unity).

В качестве примера используются следующие значения:
  • x = 1
  • y = 2
  • z = 3
Сгенерированные баллы должны быть следующими (порядок не имеет значения):
  • (1,2,3)
  • (1,2,-3)
  • (1,-2,3)
  • (1,-2,-3)
  • (-1,2,3)
  • (-1, 2,-3)
  • (-1,-2,3)
  • (-1,-2,-3)
Мой вопрос: есть ли способ сгенерировать эти точки без практического жесткого кодирования значений?

Мой текущий код для желаемого решения:

Код: Выделить всё

public void createPoints(float originalX, float originalY, float originalZ) {
for (int i = 0; i < 8; i++) { //8 vertices exist of a rectangular prism
point [i] = new Vector3 (x, y, z);
}
}
Как мне изменить этот код, чтобы генерировать эти положительные и отрицательные моменты? Я предполагаю, что это своего рода чередование положительных и отрицательных значений для x, y и z с использованием модуля i или округления деления i на какое-то другое целое число, однако я не могу обернуть свой мозг вокруг него. C# или UnityScript подходят.

Другими словами, на каждой итерации цикла for x = -x, для каждого чего-то y = -y< /code>, для каждого чего-то z = -z.

Любая помощь в этом вопросе будет очень признательна.

Подробнее здесь: https://stackoverflow.com/questions/290 ... s-vertices
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»