Преобразование координат экрана в сложные координаты

Может кто-нибудь показать, пожалуйста, как преобразовать из экранных координат в комплекс? Эта картина показывает конкретные детали о преобразовании

Предоставление шагов, как вы получите отношения между двумя было бы очень полезно.

Спасибо

2 ответа

Экран -> Сложный

Конверсия:

screenPointX .. X coordinate on the screen  
screenPointY .. Y coordinate on the screen  
screenWidth  .. width of the screen  
screenHeight .. height of the screen  
re           .. real component of resulting complex
im           .. imaginary component of resulting complex

re = 3 * screenPointX / screenWidth - 2
im = 1 - 2 * screenPointY / screenHeight

пример C++ реализация:

template<class T>
std::complex<T> screenToComplex(
    T screenPointX,
    T screenPointY,
    T screenWidth,
    T screenHeight)
{
    T re = 3 * screenPointX / screenWidth - 2;
    T im = 1 - 2 * screenPointY / screenHeight;
    return std::complex<T>(re, im);
}

Просто переставь для обратного.

Координата экрана [0,0]          -> Комплексная координата [-2, 1]  
Координата экрана [ширина, высота] -> Комплексная координата [1, -1]

Координата экрана X [x] -> Комплексная координата [-2 + 3*x/ ширина]  
Координата экрана Y [y]          -> Комплексная координата [1  - 2*y/ высота]  
Другие вопросы по тегам