Как можно проще нарисовать радиальный градиент?

121
29 сентября 2021, 13:30

Есть ли способ проще, чем просто рисовать 240 кругов разного цвета и радиуса? И как рассчитать точное количество пикселей, нужное для каждого круга, вместо того, что бы отрисовывать по 320*240 пикселей? Пробовал

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
int main() {
    cv::Mat mat(240, 320, CV_8UC1, cv::Scalar(0));
    for (int r = 0; r < 240; ++r) {
        for (int i = 0; i < 320 * 240; ++i) {
            int x = r * sin(i) + 160;
            int y = r * cos(i) + 120;
            if (x < 320 && y < 240 && x > 0 && y > 0) {
                mat.at<uchar>(y, x) = 255 - r * 1.25;
            }
        }
    }
    cv::imshow("img", mat);
    cv::waitKey(0);
    return 0;
}
READ ALSO
Удалить массив С из памяти

Удалить массив С из памяти

Полный текст задания: Даны два массива А и И одинакового размера NОпределить функцию, возвращающую новый массив С того же размера, каждый...

121
C++, volatile и strict aliasing rules

C++, volatile и strict aliasing rules

Подскажите, пожалуйста, законно ли использование спецификатора volatile для локального обхода требований строгих псевдонимов?

211