Рисование многоугольника(полигона) - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток!!!! Мне необходимо организовать рисование многоугольника(полигона) и делать всё это мышкой,дак вот есть метод DrawPolygon ему надо передать кисть и массив точек типа Paint.Сколько не пробовал не могу это сделать во всех книгах и документации написано что то типа следующего:
public void DrawPolygonPoint(PaintEventArgs e)
{
 
    // Create pen.
    Pen blackPen = new Pen(Color.Black, 3);
 
    // Create points that define polygon.
    Point point1 = new Point(50,  50);
    Point point2 = new Point(100,  25);
    Point point3 = new Point(200,   5);
    Point point4 = new Point(250,  50);
    Point point5 = new Point(300, 100);
    Point point6 = new Point(350, 200);
    Point point7 = new Point(250, 250);
    Point[] curvePoints =
             {
                 point1,
                 point2,
                 point3,
                 point4,
                 point5,
                 point6,
                 point7
             };
 
    // Draw polygon to screen.
    e.Graphics.DrawPolygon(blackPen, curvePoints);
}
Ну тут всё понятно теперь сам вопрос как мне заполнить этот массив (Point[]) нажимя мышку,возможно мне надо использовать ArrayList myList=new ArrayList(); и в него добовлять координаты точек,но как потом переместить или копировать в Point[]?? И ещё какие события использовать MouseDown,MouseMove,MouseUp или может ещё что нибудь?? Зарание спасибо за помощь!!!!

Решение задачи: «Рисование многоугольника(полигона)»

textual
Листинг программы
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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Graphics graph;
        List<Point> points;
        public Form1()
        {
            InitializeComponent();
            graph = this.CreateGraphics();
            points = new List<Point>();
        }
 
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            points.Add(new Point(e.X,e.Y));
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Point[] pnts = new Point[points.Count];
            for (int i = 0; i < points.Count; i++)
            {
                pnts[i] = points[i];
            }
            graph.DrawPolygon(Pens.Red, pnts);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы