Смотрите, на данном изображении вы можете видеть, что мой объект на рисунке 1 не полностью находится в поле зрения камеры, но все же, когда я рисую проекцию объекта, который я вижу весь объект, как показано на рисунке 2. Почему? Пожалуйста, кто-нибудь может рассказать мне о моей ошибке и подсказать решение для улучшения моего кода.
Для простоты вы можете попробовать то же самое для куба вместо объекта из файла obj.
(Редактировать)
Я подумываю об установке предел оси на втором графике должен быть таким же, как и размер усеченной пирамиды.
Я написал код для поиска проекции объекта, видимого с разных точек зрения камеры. [code]import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.art3d import Poly3DCollection from mpl_toolkits.mplot3d import Axes3D
def load_obj(filename): vertices = [] faces = [] with open(filename, 'r') as file: for line in file: if line.startswith('v '): vertices.append(list(map(float, line.strip().split()[1:]))) elif line.startswith('f '): faces.append([int(face.split('/')[0]) - 1 for face in line.strip().split()[1:]]) return np.array(vertices), faces
# Usage obj_filename = 'T_Joint_2a0e9f91/mesh/T_Joint_2a0e9f91.obj' translation = np.array([0.01, 0.01, 0.0]) # Translation vector camera_pos = np.array([0.03, 0.015, 0.03]) # Camera directly above the object camera_target = np.array([0.04, 0.025, 0]) # Looking directly at the center of the object fov_h = 42.62 # Horizontal field of view in degrees fov_v = 56.31 # Vertical field of view in degrees
plot_obj_with_camera(obj_filename, translation, camera_pos, camera_target, fov_h, fov_v) [/code] Смотрите, на данном изображении вы можете видеть, что мой объект на рисунке 1 не полностью находится в поле зрения камеры, но все же, когда я рисую проекцию объекта, который я вижу весь объект, как показано на рисунке 2. Почему? Пожалуйста, кто-нибудь может рассказать мне о моей ошибке и подсказать решение для улучшения моего кода. [img]https://i.sstatic.net/ MB9Wz7tp.png[/img]
Для простоты вы можете попробовать то же самое для куба вместо объекта из файла obj. (Редактировать) Я подумываю об установке предел оси на втором графике должен быть таким же, как и размер усеченной пирамиды.
Я написал код для поиска проекции объекта, видимого с разных точек зрения камеры.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
from mpl_toolkits.mplot3d import Axes3D
Я написал код для поиска проекции объекта, видимого с разных точек зрения камеры.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
from mpl_toolkits.mplot3d import Axes3D
Я написал код для поиска проекции объекта, видимого с разных точек зрения камеры.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
from mpl_toolkits.mplot3d import Axes3D
У меня есть матрица преобразования 4x4 по умолчанию, состоящая из матрицы вращения 3x3, вектора перемещения 3x1 и вектора масштабирования 1x3:
matrix_default= [ ,
,
,
]
Я применяю перевод в направлении X и визуализирую его с помощью:...
function getScrollPercent() {
const h = document.documentElement;
const st = 'scrollTop';
const sh = 'scrollHeight';
const clientHeight = h.clientHeight;
const scrollTop = h ;
const scrollHeight = h ;