Проблемы с изометрической проекцией в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с изометрической проекцией в Python

Сообщение Anonymous »



Изображение


Я пытаюсь создать форму II из формы I и создал следующий код.

импортировать pygame из импорта pygame.locals * из импорта OpenGL.GL * из импорта OpenGL.GLU * импортировать numpy как np вершины = np.array([ [0, 0, 0, 1], [0,707, -0,408, 0, 1], [0, -0,816, 0, 1], [-0,707, -0,408, 0, 1], [-0,707, 0,408, 0, 1], [0, 0,816, 0, 1], [0,707, 0,408, 0, 1], [0, 0, 0, 1] ], dtype=np.float64) края = [ (0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (3, 0), (4, 7), (7, 2), (6, 1), (0, 5) ] axis_vertices = np.array([ [0, 0, 0, 1], [4, 0, 0, 1], [0, 4, 0, 1], [0, 0, 4, 1] ], dtype=np.float64) axis_edges = [ (0, 1), (0, 2), (0, 3) ] Защиту Multiple_matrix_vector(матрица, вектор): результат = np.zeros(matrix.shape[0]) для меня в диапазоне (matrix.shape[0]): temp_result = np.dot(матрица[i,:], вектор) список (результат) = temp_result вернуть результат защита draw_cube(): глБегин (GL_LINES) glColor3f(1, 1, 1) для края в краях: для вершины в ребре: glVertex3fv(вершины[вершина][:3]) глКонец() защита draw_axes(): глБегин (GL_LINES) glColor3f(1, 0, 0) glVertex3fv(axis_vertices[0][:3]) glVertex3fv(axis_vertices[1][:3]) glColor3f(0, 1, 0) glVertex3fv(axis_vertices[0][:3]) glVertex3fv(axis_vertices[2][:3]) glColor3f(0, 0, 1) glVertex3fv(axis_vertices[0][:3]) glVertex3fv(axis_vertices[3][:3]) глКонец() def set_perspective_matrix(fov, аспект, ближний, дальний): f = 1,0 / np.tan(np.radians(fov) / 2,0) перспективная_матрица = np.array([ [ф/аспект, 0, 0, 0], [0, ж, 0, 0], [0, 0, (далеко + близко) / (близко - далеко), (2 * далеко * близко) / (близко - далеко)], [0, 0, -1, 0] ]) glLoadMatrixd(perspective_matrix.transpose()) защита основной(): pygame.init() дисплей = (800, 600) pygame.display.set_mode(display, DOUBLEBUF | OPENGL) set_perspective_matrix(45, (display[0] / display[1]), 0.1, 50.0) glTranslatef(0.0, 0.0, -5) draw_cube() pygame.display.flip() пока правда: для события в pygame.event.get(): если event.type == pygame.QUIT: pygame.quit() покидать() glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) глПушМатрикс() # Переносим по оси X Translation_matrix = np.array([ [1, 0, 0, 1,5], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1] ]) глобальные вершины вершины = np.dot(вершины, Translation_matrix.T) # Выполняем изометрическую проекцию isometric_matrix = np.array([ [0,707, -0,408, 0,577, 0], [0, 0,816, 0,577, 0], [-0,707, -0,408, 0,577, 0], [0, 0, 0, 1] ]) вершины = Multiple_matrix_vector(isometric_matrix, vertices.T).T draw_axes() глПопМатрикс() draw_cube() pygame.display.flip() pygame.time.wait(10) если __name__ == "__main__": основной() Однако при внесении изменений возникла ошибка:

Строка 49

result = temp_result ~~~~~~^^^ ValueError: установка элемента массива с помощью последовательности. Когда я делаю следующую модификацию:

список(результат) = temp_result

Я получаю новую ошибку: строка 64,

glVertex3fv(вершины[вершина][:3]) IndexError: неверный индекс скалярной переменной.

Не могли бы вы мне помочь?
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отсутствуют плитки при рендеринге изометрической карты тайлов в шахматном порядке в Unity.
    Гость » » в форуме C#
    0 Ответы
    76 Просмотры
    Последнее сообщение Гость
  • Система привязки изометрической сетки для клона Minecraft в Pygame
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Spring данные Elasticsearch @query с проекцией/исходным фильтром
    Anonymous » » в форуме JAVA
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Spring данные Elasticsearch @query с проекцией/исходным фильтром
    Anonymous » » в форуме JAVA
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Spring данные Elasticsearch @query с проекцией/исходным фильтром
    Anonymous » » в форуме JAVA
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous

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