Как закрасить фигуру в c
Перейти к содержимому

Как закрасить фигуру в c

  • автор:

Как закрасить каждую фигуру отдельным цветом?

Как закрасить фигуру цветом?
Подскажите пожалуйста почему фигура закрашивается белым цветом(точнее как её закрасить цветом.

На абсолютно любой картинке закрасить каждую 25-ю строку красным цветом. Как это сделать?
"На абсолютно любой картинке закрасить каждую 25-ую строку красным цветом. И этом же окне с помощью.

Как закрасить фигуру
uses crt,graph; var gd,gm:integer; begin clr scr; detect graph (gd,gm); initgraph(gd,gm’.

Супер-модератор

Эксперт Pascal/DelphiАвтор FAQ

32776 / 21119 / 8141
Регистрация: 22.10.2011
Сообщений: 36,378
Записей в блоге: 8
Так Code::Blocks или Builder 6?
Регистрация: 20.04.2021
Сообщений: 65
а есть разница? библиотека graphics.h, компилирую в codeblocks
Супер-модератор

Эксперт Pascal/DelphiАвтор FAQ

32776 / 21119 / 8141
Регистрация: 22.10.2011
Сообщений: 36,378
Записей в блоге: 8
А есть разница. Переношу тему в общий раздел С++.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как создать и закрасить фигуру
Вот ,например, я рисую прямоугольник System.Drawing.Pen myPen = new.

Как закрасить фигуру, сохранив видимость линий?
Как закрасить фигуру, при этом чтоб все линии остались видны? вот мой код, помогите пожалуйста.

Как в OpenGL отрисовать и закрасить любую геометрическую фигуру?
Kerry_Jr , Вы не могли бы предоставить небольшой пример кода с графикой в C++ . Совершенно не.

Как залить фигуру цветом?
есть у меня например пирамида, нарисованная точечно ( GL_LINE ), и никак по другому, нужно залить.

Как закрасить разделитель QSplitter определенным цветом?
Как закрасить разделитель QSplitter определенным цветом?Точнее ту полоску, которая разделяет виджеты

Как создать и закрасить фигуру

Как закрасить фигуру
uses crt,graph; var gd,gm:integer; begin clr scr; detect graph (gd,gm); initgraph(gd,gm’.

Как закрасить фигуру цветом?
Подскажите пожалуйста почему фигура закрашивается белым цветом(точнее как её закрасить цветом.

Как закрасить фигуру, сохранив видимость линий?
Как закрасить фигуру, при этом чтоб все линии остались видны? вот мой код, помогите пожалуйста.

Как в OpenGL отрисовать и закрасить любую геометрическую фигуру?
Kerry_Jr , Вы не могли бы предоставить небольшой пример кода с графикой в C++ . Совершенно не.

8935 / 4847 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
FillRectangle
Регистрация: 14.03.2013
Сообщений: 18
А пример, если можно.
Заблокирован

formGraphics.FillRectangle(Brushes.Red, new Rectangle(x1, y1, w, h));

8935 / 4847 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246

чтобы два раза не ходить, заодно ещё немного приёмов для начала. При каждом клике по форме будет рисоваться закрашенный прямоугольник «случайного» цвета.

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
public partial class Form1 : Form { private Point pt;//Точка вставки прямоугольника private Brush br;//Кисть для заливки private Random rnd = new Random();//Для получения случайного цвета public Form1() { InitializeComponent(); this.MouseClick += new MouseEventHandler(Form1_MouseClick);//Обработчик клика мышью this.Paint += new PaintEventHandler(Form1_Paint);//Обработчик рисования формы } private void Form1_Paint(object sender, PaintEventArgs e) { //Если кисть создана, то рисуем прямоугольник в половину размера клиентской области формы if (br != null) e.Graphics.FillRectangle(br, new Rectangle(pt, new Size(this.ClientRectangle.Width / 2, this.ClientRectangle.Height / 2))); } private void Form1_MouseClick(object sender, MouseEventArgs e) { //При клике запоминаем точку клика и создаём новую кисть случайного цвета pt = e.Location; br = new SolidBrush(Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256))); //Обновляем форму, чтобы вызвать процедуру её прорисовки this.Refresh(); } }

Залить часть геометрической фигуры

Зачем это нужно: пользователю скажем, что это вид сбоку на какие-то ёмкости. Ёмкости могут быть не только прямоугольные/круглые, но и сложного сечения, отсюда и проблема.

Получить площадь замкнутого многоугольника я могу, как и вычислить условные 25% от неё. А вот дальше-то что? Примем, что у нас многоугольник выпуклый, с одним «дном». Как на картинке.

Есть мысль идти тупо по точкам внутри контура, снизу вверх и влево-вправо, пока количество залитых пикселей не будет равно 25% от площади, но на большом поле это займёт кучу времени. А Paint() вызывается довольно часто.

Ниже пример, как если-бы пользователь нарисовал фигуру и ввёл 25% заполненности (в реале заливка будет снизу вверх, я в Paint нарисовал некорректно, но смысл не меняется)

Работаю в C# WinForms .net 3.5

Как закрасить фигуру?

Добра всем! Такой вопрос. Я не очень понимаю алгоритм нахождения точки внутри многоугольника(в данном случае треугольник, но алгоритм должен быть общим). Есть растровое отображение фигуры, хранится в массиве, и его полигон, который строится по пикселям линиями через алгоритм Брезенхэма, полученную фигуру нужно закрасить.
Сейчас на этапе таком, для удобства пока рисую в файл.

5fa999512a772791049237.png

Итог должен быть такой, то есть контур не трогать

5fa99ab98f171074054125.png

Была идея построчного прохождения и поиска границ, но проблема такая, что последовательность может идти из нескольких единиц, а на вершинах и вовсе как сплошная линия, без разрыва(вот такой разрыв ——11—-11—, а вершина обычно ——11—- и другие вариации)

  • Вопрос задан более двух лет назад
  • 209 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *