Форум программистов, компьютерный форум CyberForum.ru

Программа на C++, которая переводит цветовую модель RGB в модель HSV - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Замена части элементов у вектора http://www.cyberforum.ru/cpp-beginners/thread1118293.html
Здравствуйте! Я совсем новичок в C++ :) И вот возник такой вопрос... Есть ли в векторе, или может в каком-то другом классе из stl'а, реализация замены части элементов, на подобии как в string std::string str1(10,'_'); str1.replace(2,5,"Hello"); Можно ли сделать аналогичное например с этим std::vector<int> vec1(10,3); Может, наверно, через algorithm что-то можно такое натворить Или...
C++ Китайский календарь (Паскаль -> C++) program korova; uses crt; var a:integer; begin clrscr; writeln('введите год:'); readln(a); case a mod 12 of 1:writeln('курица'); 2:writeln('собака'); http://www.cyberforum.ru/cpp-beginners/thread1118285.html
Определить количество положительных элементов каждого столбца двумерного массива, содержащего 5 строк и 5 столбцов C++
Определить количество положительных элементов каждого столбца двумерного массива, содержащего 5 строк и 5 столбцов. int a2,n2=0,i2,j2; for (i2=0;i2<5;i2++) { for (j2=0;j2<5;j2++) { cin>>a2; } } for (i2=0;i2<5;i2++) { for (j2=0;j2<5;j2++)
Найти ошибку в приведенном коде C++
#include <iostream> using namespace std; /////////////////////////////////////////////////////////////////////////////////// class abon { public:
C++ LoadKeyboardLayout - компилятор выдает ошибку http://www.cyberforum.ru/cpp-beginners/thread1118264.html
На строку (и на ей подобную)LoadKeyboardLayout("00000419", KLF_ACTIVATE); Компилятор (MinGW, QT Creator) выдает следующее: cannot convert 'const char*' to 'LPCWSTR {aka const wchar_t*}' for argument '1' to 'HKL__* LoadKeyboardLayoutW(LPCWSTR, UINT)' Как сие вылечить? #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #include <windows.h>
C++ Как узнать какие изменения произошли в 2 документах Добрый день! я не являюсь программистом и навыков у меня как токовых нет( Но очень нужна ваша помощь и надеюсь что нормально отнесетесь к тому что написано выше. Сама проблема: Имеется 2 текстовых документа! в одном документе находятся словосочетания! в другом документе находятся такие же словосочетания, НО добавлено к примеру 3 НОВЫХ словосочетания. Как я могу определить какие именно... подробнее

Показать сообщение отдельно
recoder
 Аватар для recoder
129 / 129 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
14.03.2014, 22:56     Программа на C++, которая переводит цветовую модель RGB в модель HSV
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <cstdlib>
 
#define MIN3(x,y,z)  ((y) <= (z) ? \
                          ((x) <= (y) ? (x) : (y)) \
                      : \
                          ((x) <= (z) ? (x) : (z)))
 
#define MAX3(x,y,z)  ((y) >= (z) ? \
                         ((x) >= (y) ? (x) : (y)) \
                     : \
                         ((x) >= (z) ? (x) : (z)))
 
struct rgb_color {
    double r, g, b;    // 0.0 and 1.0
};
 
struct hsv_color {
    double hue;        // 0.0 and 360.0 
    double sat;        // 0.0 (gray) and 1.0
    double val;        // 0.0 (black) and 1.0 */
};
 
struct hsv_color rgb_to_hsv(struct rgb_color rgb) {
 
    struct hsv_color hsv;
    double rgb_min, rgb_max;
    rgb_min = MIN3(rgb.r, rgb.g, rgb.b);
    rgb_max = MAX3(rgb.r, rgb.g, rgb.b);
    hsv.val = rgb_max;
    if (hsv.val == 0) {
        hsv.hue = hsv.sat = 0;
        return hsv;
    }
 
    // Норм. значение 1
    rgb.r /= hsv.val;
    rgb.g /= hsv.val;
    rgb.b /= hsv.val;
    rgb_min = MIN3(rgb.r, rgb.g, rgb.b);
    rgb_max = MAX3(rgb.r, rgb.g, rgb.b);
    hsv.sat = rgb_max - rgb_min;
    if (hsv.sat == 0) {
        hsv.hue = 0;
        return hsv;
    }
    
    // Насыщение 1
    rgb.r = (rgb.r - rgb_min)/(rgb_max - rgb_min);
    rgb.g = (rgb.g - rgb_min)/(rgb_max - rgb_min);
    rgb.b = (rgb.b - rgb_min)/(rgb_max - rgb_min);
    rgb_min = MIN3(rgb.r, rgb.g, rgb.b);
    rgb_max = MAX3(rgb.r, rgb.g, rgb.b);
 
    if (rgb_max == rgb.r) {
        hsv.hue = 0.0 + 60.0*(rgb.g - rgb.b);
        if (hsv.hue < 0.0) {
            hsv.hue += 360.0;
        }
    } else if (rgb_max == rgb.g) {
        hsv.hue = 120.0 + 60.0*(rgb.b - rgb.r);
    } else /* rgb_max == rgb.b */ {
        hsv.hue = 240.0 + 60.0*(rgb.r - rgb.g);
    }
    return hsv;
}
 
 
int main(int argc, char* argv[]) {
    struct rgb_color rgb;
    struct hsv_color hsv;
    std::cin >> rgb.r;
    std::cin >> rgb.g;
    std::cin >> rgb.b;
    hsv = rgb_to_hsv(rgb);
    std::cout << "Hue: " << hsv.hue << std::endl;
    std::cout << "Saturation: " << hsv.sat << std::endl;
    std::cout << "Value: " << hsv.val << std::endl;
 
    std::cin.get();
    std::cin.get();
    return 0;
}
 
Текущее время: 02:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru