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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2013, 21:41   #1
Veryn4ik1993
Пользователь
 
Регистрация: 12.09.2012
Сообщений: 81
По умолчанию Рисование эллипсов

Нужно нарисовать эллипс с закрашенной внутренней областью (определить кисть SolidBrush и использовать метод FillEllipse() класса Graphics) и разноцветным контуром произвольной толщины.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ex3
{
    public partial class Form1 : Form
    {
         Random r = new Random();
        int x, y;
        Graphics Graph;
        SolidBrush MyPen;
        public Form1()
        {
            InitializeComponent();
            Graph = CreateGraphics();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            MyPen.Dispose();
            Graph.Dispose();
        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            int a = r.Next(15) + 1;
            Pen MyPen = new Pen(Color.FromArgb(r.Next(256), r.Next(256), r.Next(256)), a);
            float[] dashValues = { r.Next(6) + 1, r.Next(6) + 1, r.Next(6) + 1, r.Next(6) + 1 };
            MyPen.DashPattern = dashValues;
            int w = Math.Abs(e.X - x);
            int h = Math.Abs(y - e.Y);
            x = Math.Min(e.X, x);
            y = Math.Min(e.Y, y);
            Graph.DrawRectangle(MyPen, x, y, w, h);
          
        }


    }
}
Я не понимаю как сделать эту кисть и как дальше толкаться

Последний раз редактировалось Stilet; 20.02.2013 в 22:18.
Veryn4ik1993 вне форума Ответить с цитированием
Старый 21.02.2013, 08:09   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Код:
int a = r.Next(15) + 1;
Color pencol = Color.FromArgb(r.Next(256), r.Next(256), r.Next(256));
Color brushcol = Color.FromArgb(r.Next(256), r.Next(256), r.Next(256));
Pen MyPen = new Pen(pencol, a);            
int w = Math.Abs(e.X - x);
int h = Math.Abs(y - e.Y);
x = Math.Min(e.X, x);
y = Math.Min(e.Y, y);
Graph.DrawEllipse(MyPen, Rectangle.Inflate(new Rectangle(x, y, w, h), 3, 3));
Graph.FillEllipse(new SolidBrush(brushcol), x, y, w, h);
Чего сложного то ? Единственно, растолкуйте "разноцветного контура".
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать приложения для рисования эллипсов с закрашенной внутренней областью на Delphi Richik123 Помощь студентам 3 04.10.2012 07:27
Описание класса эллипсов ГульнарочкаГ Помощь студентам 0 22.03.2012 19:43
[Silverlight] Как реализовать массив эллипсов? Java WPF, UWP, WinRT, XAML 0 13.12.2011 00:07
Алгоритм растеризации эллипсов rabbet88 Общие вопросы Delphi 1 04.11.2010 12:39
Рисование !) Weyner Помощь студентам 0 23.10.2010 09:20