Математическая функция atan2(x,y)

Pixilang по русски
Post Reply
kerbal
Posts: 9
Joined: Sun Nov 22, 2015 9:06 pm

Математическая функция atan2(x,y)

Post by kerbal » Fri Dec 04, 2015 9:31 pm

Если возможно, добавьте пожалуйста эту функцию - atan2(x,y) в pixilang. Я попробую реализовать её через другие функции pixilang, но боюсь, что производительность сильно просядет, т.к. функция будет очень интенсивно использоваться в проекте.
http://pascal.net.ru/ArcTan2
http://php5.kiev.ua/manual/ru/function.atan2.html

kerbal
Posts: 9
Joined: Sun Nov 22, 2015 9:06 pm

Re: Математическая функция atan2(x,y)

Post by kerbal » Sat Oct 15, 2016 3:28 pm

Собственно, реализация функции atan2(x,y):

Code: Select all

fn atan2( $x,$y)
{
_atan_t = 0.0
if $x == 0.0 && $y == 0.0
{
    _atan_t = 0.0
}
else
{
    if $x >= $y
    {
        if $x >= -$y
        {
            _atan_t = atan($y / $x) // правый квадрант 
        }
        else
        {
            _atan_t = (-M_PI / 2) - atan($x / $y) // нижний квадрант
        }
     }
     else
     {
     if $x >= - $y
	 {
         _atan_t = (M_PI / 2) - atan($x / $y) // верхний квадрант
      }
     else
	 {
     if $y >= 0.0
     {
       _atan_t = M_PI + atan($y / $x) // верхний октант в левом квадранте
      }
     else
     {
      _atan_t = -M_PI + atan($y / $x) // нижний октант в левом квадранте
     }
   }
}
}
   ret ( _atan_t )
}

kerbal
Posts: 9
Joined: Sun Nov 22, 2015 9:06 pm

Re: Математическая функция atan2(x,y)

Post by kerbal » Sat Oct 15, 2016 4:04 pm

Проект, в котором эта функция используется:
viewtopic.php?f=9&t=4175

User avatar
NightRadio
Site Admin
Posts: 3025
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Математическая функция atan2(x,y)

Post by NightRadio » Sun Oct 16, 2016 12:06 am

Интересный проект, спасибо!
Я запишу к себе в планы, чтобы не забыть добавить функцию. Релиз надеюсь сделать в этом году )

kerbal
Posts: 9
Joined: Sun Nov 22, 2015 9:06 pm

Re: Математическая функция atan2(x,y)

Post by kerbal » Sun Oct 16, 2016 1:06 am

NightRadio wrote:Интересный проект, спасибо!
Я запишу к себе в планы, чтобы не забыть добавить функцию. Релиз надеюсь сделать в этом году )
Это было бы замечательно!
Не уверен, что корректно закодил эту функцию. Всё же я программист ненастоящий.

kerbal
Posts: 9
Joined: Sun Nov 22, 2015 9:06 pm

Re: Математическая функция atan2(x,y)

Post by kerbal » Sun Nov 06, 2016 2:27 am

В ожидании функции atan2(x,y) и вдумчивого курения доков по быстрым тригонометрическим функциям решил присмотреться попристальней к gl-режиму и запилить skybox. Он же cubik-pano. Заодно и кватернионы пощупать. Первые прикиды показали что cubik всяко быстрее попиксельного рендера будет. А пиксели планирую приспособить для конвертации различных типов панорам. Очень удобная штука pixilang.

User avatar
NightRadio
Site Admin
Posts: 3025
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Математическая функция atan2(x,y)

Post by NightRadio » Sun Nov 06, 2016 12:03 pm

В OpenGL-режиме, конечно, прирост скорости будет на порядки. Рекомендую поэкспериментировать :)
atan2 не успел добавить в последний релиз - все второпях делалось, параллельно с SunVox :) Постараюсь в ближайшем обновлении...

Post Reply