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

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

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

Спасибо

0

Решение

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

Конверсия:

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);
}

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

1

Другие решения

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

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

По вопросам рекламы [email protected]