Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 14:11   #1
stupid
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 19
По умолчанию нарисовать

подскажите с помощью чего можно рисовать круги,прямоугольники... закрашивать их.
stupid вне форума Ответить с цитированием
Старый 24.05.2011, 14:58   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

http://www.techotopia.com/index.php/...ics_in_C_Sharp
http://ondotnet.com/pub/a/dotnet/200...0/drawing.html

Почитай MSDN, там все написано.
Hollander вне форума Ответить с цитированием
Старый 01.06.2011, 18:58   #3
kesha2008
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 12
По умолчанию

Такая проблема. Надо нарисовать полигон, залить его цветом и нанести штриховку.

Первых два пункта делаю:
Код:
e.Graphics.FillRectangle(new SolidBrush (Color.White) ,e.ClipRectangle);
            Pen blackPen = new Pen( Color.Black, 3 );
             // Create points that define polygon.
            PointF point1 = new PointF( 50.0F, 50.0F );
            PointF point2 = new PointF( 100.0F, 25.0F );
            PointF point3 = new PointF( 200.0F, 5.0F );
            PointF point4 = new PointF( 250.0F, 50.0F );
            PointF point5 = new PointF( 300.0F, 100.0F );
            PointF point6 = new PointF( 350.0F, 200.0F );
            PointF point7 = new PointF( 250.0F, 250.0F );
            PointF[] curvePoints =
             {
                 point1,
                 point2,
                 point3,
                 point4,
                 point5,
                 point6,
                 point7
             };
            e.Graphics.DrawPolygon( blackPen, curvePoints );
            e.Graphics.FillPolygon( new SolidBrush( Color.Red ), curvePoints );
А вот как сделать штриховку, например синим цветом, не особо понимаю.

В Builder 6 у Brush есть свойство Style и там всё работает, как надо.
Код:
      TPoint points[4];
      points[0] = Point(10,10);
      points[1] = Point(30,10);
      points[2] = Point(130,30);
      points[3] = Point(240,120);
      Image->Canvas->Brush->Color = clRed;
      Image->Canvas->Brush->Style = bsSolid;
      Image->Canvas->Polygon(points, 3);
      Image->Canvas->Brush->Color = clBlue;
      Image->Canvas->Brush->Style = bsVertical;
      Image->Canvas->Polygon(points, 3);
По сути, как я понимаю, надо сделать класс, наследник Brush и добавить в него поле DashStyle

Код:
    public class mybrush : Brush
    {
        private System.Drawing.Drawing2D.DashStyle Style;
        public Color color;
        public System.Drawing.Drawing2D.DashStyle DashStyle { get { return Style; } set { Style = value; } }
    }
Но чего-то не работает как надо...

Последний раз редактировалось kesha2008; 01.06.2011 в 20:34.
kesha2008 вне форума Ответить с цитированием
Старый 01.06.2011, 20:29   #4
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

линиями другого цвета закрасить... исходя из определения штриховки... Что именно непонятно? Как вычислить координаты?
Spawn™Production® вне форума Ответить с цитированием
Старый 01.06.2011, 20:48   #5
kesha2008
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 12
Хорошо

Цитата:
Сообщение от Spawn™Production® Посмотреть сообщение
линиями другого цвета закрасить... исходя из определения штриховки... Что именно непонятно? Как вычислить координаты?
Была такая идея. Именно на координатах и застопорился. К примеру хочу сделать линии с определённым шагом.

Мне надо получить примерно такое
kesha2008 вне форума Ответить с цитированием
Старый 01.06.2011, 21:52   #6
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Тут можно про алгоритм почитать: http://algolist.manual.ru/graphics/fill.php
Spawn™Production® вне форума Ответить с цитированием
Старый 02.06.2011, 04:56   #7
kesha2008
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Spawn™Production® Посмотреть сообщение
Тут можно про алгоритм почитать: http://algolist.manual.ru/graphics/fill.php
Данный алгоритм на Компьюетрной графике на прошлой неделе изучали))

Подсказали более лёгкое решение проблемы:
Код:
System.Drawing.Drawing2D.HatchBrush hatchBrush = new HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Red);
Данная кисть как раз и выполняет то, что мне надо!
Спасибо всё равно за помощь!
kesha2008 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарисовать квадрат! SwiP Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 17 02.02.2011 19:23
нарисовать в с++ Telec Помощь студентам 0 30.05.2010 22:14
Нарисовать в с++ Telec Общие вопросы C/C++ 0 30.05.2010 22:14
нарисовать guverr Общие вопросы Delphi 1 29.04.2010 10:23
Нарисовать сферу vrs68 Помощь студентам 1 01.04.2008 23:44