Назначение значений цвета с помощью трассировки лучей - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь создать программу Python, использующую трассировку лучей, чтобы назначить цветовые значения графику на основе величины отраженного луча на поверхности. У меня уже есть код, который вычисляет нормализованный отраженный луч в форме [x, y, z]. Кроме того, поверхность ограничена трехмерным кубом 2x2 с центром в начале координат. Основываясь на величине отраженного луча от поверхности к стенкам куба, я хочу назначить цветовые значения для создания цветного графика, используя matplotlib и Axes3D. Все помогает!

#light[R_max,R_max,R_max]
for i in range(200):
    for j in range(100):
        #this is the point on the surface that will be used to calculate everything for each loop
        point=[X[i,j],Y[i,j],Z[i,j]]
        incident=[point[0]-initial[0],point[1]-initial[1],point[2]-initial[2]]
        normal=np.zeros(3)
        normal=np.cross([theta_x[i,j],theta_y[i,j],theta_z[i,j]],[phi_x[i,j],phi_y[i,j],phi_z[i,j]])
        if j==0:
            normal=np.array([0,0,1])
        if j==100:
            normal=np.array([0,0,-1])

        proj_normal=normal*np.dot(incident,normal)
        reflected=incident-2*proj_normal
        #this is the normalized reflected ray in [?,?,?] form at the point 
        normalized_reflected=reflected/np.sqrt(reflected[0]**2+reflected[1]**2+reflected[2]**2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...