Как расчитать какие пиксиле что попадают в линию градуса?
Как изобразить линию градуса на экране взяв за основу точку и указав к не градус куда она смотрит ?
Моя цель зная точку и градус закрасить пиксели что стоят на пути отрезка и вывести в opencv.
Не очень понимаю ибо экрана не могу понять как расценивать соотношение пикселей когда идет наискосок.
То есть я задаю в функции начальную точку и градус 2 значения.
Меня. пиксели на черный и вывожу все в opencv, как рассчитать какие пиксели попадают не понимаю.
Вы хотя бы перечитайте эту мешанину опечаток без знаков препинания. Как вас вообще понять можно? Чего вы хотите? Вы бы хоть в пэинте нарисовали чего вам надо, или на бумажке и сфотографировали.
Поток спутанного сознания какой-то.
Я пишу функцию которая принимает 2 значения (координаты на экране и градус)
Вывод будет изображение которые закрасит полоску пикселей в направление этого градуса до конца экрана.
А потом буду в потоке их скармливать Opencv чтобы вывести как поток видео.
Проблема в том что я не очень понимаю соотношение вычисления пикселей относительно друг друга.
Если бы была вертикаль там понятно это просто y ++ , в итоге вроде додумал что нужно от точки и
как бы сказать части в которую падает направление (0-90) у меня это (1920,1080 ) вычесть из них начальную точку и вывод поделить друг на друга.
Правда в отличии от тригонометрии тут верх это 360\0 и дет по часовой что 0-90 даст прав-вверх координаты монитора, если я так понял.
Если точка 1040,560 градус 55 то:
1920-1400 = 880
1080 - 560 = 520
880 / 520 = 1.69
Что то типо, но ещё не понимаю как мне вычислить сам пиксели (номера) по идее ведь можно было задать толщину луча. (термины не бошки)
Извиняйте в школе толком не учился, тот хаос что мозг выдает, то и высказываю тут вроде ошибка с углом ибо правый вверх это (1920,0)
Проблема в том что я не очень понимаю соотношение вычисления пикселей относительно друг друга.
Что значит эта загадочная фраза?
Боже! Кровь из глаз! Вы слышали про запятые, вообще?!
(термины не бошки)
Что это?!
Жесть. Надо учиться, чувак.
fi - угол в градусах.
Pi*fi/180 - тот же угол в радианах.
Pi*fi/180 + Pi/2 - это мы повернули угол на 90 градусов против часовой стрелки. Вам же сверху надо отсчитывать ноль градусов.
Чтобы угол отсчитывался не пртив, а по часовой стрелке, нужно добавить минус:
angle=-(Pi*fi/180 + Pi/2)
W=1920
H=1080
Возьмём некий радиус, в окружность которого гарантированно поместится весь экран:
Его можно взять любым, например, 2000. Рисовать за границами экрана позволяет практически любая библиотека.
R=2000
Прочитайте определение синуса и косинуса в вики.
Синус острого угла прямоугольного треугольника - это отношение противолежащего катета к гипотенузе. Косинус - это отношение прилежащего катета к гипотенузе.
Гипотенуза у нас - это R. Прилежащий к углу катет - это X, противолежащий - Y.
cos(angle) = x / R
sin(angle) = y / R
Из этих выражений можно вывести значение координат x, y.
К ним следует прибавить половину размера экрана, и вы получите вторую точку, куда будете рисовать отрезок из центра кадра.
Если ваша линия должна быть толще нескольких пикселей, то удобнее было бы делать вычисления в векторной форме, иначе пришлось бы проделывать такие вот рассчеты для каждой из четырёх точек вращающегося прямоугольника.
Если этой информации будет вам не достаточно, то идите учиться в школу. Серьёзно. Вам рано решать такие задачи не освоив базовых знаний.