Ответы пользователя по тегу Разработка игр
  • Как повернуть уравнение плоскости относительно точки?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    повернуть уравнение плоскости на угол Y U W (относительно осей ox, oy, oz)

    - что имеется в виду? Повернуть плоскость на угол Y относительно ox, потом на U относительно oy, и потом на W относительно oz?
    Предположим, что так.
    Первым делом, надо сдвинуть систему координат так, чтобы точка M оказалась началом координат:
    x=x1+MX, y=y1+MY, z=z1+MZ. Уравнение плоскости в этой системе будет A*x1+B*y1+C*z1+(D+A*MX+B*MY+C*MZ)=0.
    Теперь выполним поворот относительно оси Ox: A1=A, B1=B*cos(Y)+C*sin(Y), C1=-B*sin(Y)+C*cos(Y). Свободный член в уравнении не изменится (расстояние до начала координат и длина вектора нормали не изменились), получилось уравнение A1*x+B1*y+C1*z+D1=0 (где D1=D+A*MX+B*MY+C*MZ). Аналогично выполняем повороты относительно Oy и Oz. Получится уравнение A3*x+B3*y+C3*z+D1=0. Осталось сдвинуть систему координат обратно, чтобы начало координат перешло в точку M: A3*x+B3*y+C3*z+(D1-A3*MX-B3*MY-C3*MZ)=0. Это есть ответ. Надо только убедиться, что повороты идут в правильные стороны.
    Ответ написан
    Комментировать