Я начинающий программист, и мне нужно получить простое изображение для отображения в файле PPM, используя базовые фигуры в RGB.
Мое изображение должно быть зеленого цвета. прямоугольник, закрывающий нижнюю треть, коричневый вертикальный прямоугольник, выступающий вверх, и зеленый круг поверх коричневого прямоугольника, как у очень простого дерева. Мой код работает, но изображение зашифровано. Я попробовал просмотреть и удалить каждую фигуру, чтобы увидеть, не в этом ли проблема, но даже если использовать только фон, получается беспорядочная цветовая путаница. Любая помощь будет принята с благодарностью; спасибо.
Это мой код в том виде, в каком он есть сейчас
#include
#include
#include
using namespace std;
const int HEIGHT = 200;
const int WIDTH = 300;
struct RGB {
unsigned char r, g, b;
};
void drawRect(RGB ppmImage[][WIDTH], int rectTop, int rectLeft, int rectHeight,
int rectWidth, RGB color);
void drawCircle(RGB ppmImage[][WIDTH], int centerX, int centerY, int radius,
RGB color);
bool writeImagePPM(RGB ppmImage[][WIDTH], const string fileName);
int main() {
RGB ppmImage[HEIGHT][WIDTH];
for (int row = 0; row < HEIGHT; row++)
for (int col = 0; col < WIDTH; col++)
ppmImage[row][col] = {0, 0, 255};
drawRect(ppmImage, 106, 0, 67, 300, {0, 0, 255});
drawRect(ppmImage, 130, 145, 60, 10, {139, 69, 19});
int centerX = 145 + 10 / 2;
int centerY = 130;
int radius = 17;
drawCircle(ppmImage, centerX, centerY, radius, {0, 210, 0});
writeImagePPM(ppmImage, "imgGen.ppm");
}
void drawRect(RGB ppmImage[][WIDTH], int rectTop, int rectLeft, int rectHeight,
int rectWidth, RGB color) {
for (int y = rectTop; y < rectTop + rectHeight; y++)
for (int x = rectLeft; x < rectLeft + rectWidth; x++)
ppmImage[y][x] = color;
}
void drawCircle(RGB ppmImage[][WIDTH], int centerX, int centerY, int radius,
RGB color) {
for (int y = max(centerY - radius, 0); y
Подробнее здесь: https://stackoverflow.com/questions/783 ... ble-shapes
Изображение файла PPM выглядит не так, как ожидалось (нет различимых форм) ⇐ C++
Программы на C++. Форум разработчиков
1713251110
Anonymous
Я начинающий программист, и мне нужно получить простое изображение для отображения в файле PPM, используя базовые фигуры в RGB.
Мое изображение должно быть зеленого цвета. прямоугольник, закрывающий нижнюю треть, коричневый вертикальный прямоугольник, выступающий вверх, и зеленый круг поверх коричневого прямоугольника, как у очень простого дерева. Мой код работает, но изображение зашифровано. Я попробовал просмотреть и удалить каждую фигуру, чтобы увидеть, не в этом ли проблема, но даже если использовать только фон, получается беспорядочная цветовая путаница. Любая помощь будет принята с благодарностью; спасибо.
Это мой код в том виде, в каком он есть сейчас
#include
#include
#include
using namespace std;
const int HEIGHT = 200;
const int WIDTH = 300;
struct RGB {
unsigned char r, g, b;
};
void drawRect(RGB ppmImage[][WIDTH], int rectTop, int rectLeft, int rectHeight,
int rectWidth, RGB color);
void drawCircle(RGB ppmImage[][WIDTH], int centerX, int centerY, int radius,
RGB color);
bool writeImagePPM(RGB ppmImage[][WIDTH], const string fileName);
int main() {
RGB ppmImage[HEIGHT][WIDTH];
for (int row = 0; row < HEIGHT; row++)
for (int col = 0; col < WIDTH; col++)
ppmImage[row][col] = {0, 0, 255};
drawRect(ppmImage, 106, 0, 67, 300, {0, 0, 255});
drawRect(ppmImage, 130, 145, 60, 10, {139, 69, 19});
int centerX = 145 + 10 / 2;
int centerY = 130;
int radius = 17;
drawCircle(ppmImage, centerX, centerY, radius, {0, 210, 0});
writeImagePPM(ppmImage, "imgGen.ppm");
}
void drawRect(RGB ppmImage[][WIDTH], int rectTop, int rectLeft, int rectHeight,
int rectWidth, RGB color) {
for (int y = rectTop; y < rectTop + rectHeight; y++)
for (int x = rectLeft; x < rectLeft + rectWidth; x++)
ppmImage[y][x] = color;
}
void drawCircle(RGB ppmImage[][WIDTH], int centerX, int centerY, int radius,
RGB color) {
for (int y = max(centerY - radius, 0); y
Подробнее здесь: [url]https://stackoverflow.com/questions/78332639/ppm-file-image-not-coming-out-as-expectedno-discernable-shapes[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия