class Cycle : Form1
{
public void Draw(Graphics G,Brush b, float x, float y, float w, float h)
{
G.FillEllipse( b, x, y, w, h);
}
}
Это мой класс Cycle, унаследованный от Form1.
List<Point> star = new List<Point>();
List<Point> endd = new List<Point>();
private void Panel1_MouseDown(object sender, MouseEventArgs e)
{
moving = true;
Start = e.Location;
star.Add(e.Location);
}
private void Panel1_MouseMove(object sender, MouseEventArgs e)
{
if (moving)
{
End = e.Location;
Panel1.Invalidate();
}
}
private void Panel1_MouseUp(object sender, MouseEventArgs e)
{
endd.Add(e.Location);
moving = false;
}
Это мои аргументы событий мыши, которые хранят местоположения.
private void Panel1_Paint(object sender, PaintEventArgs e)
{
Cycle c = new Cycle();
if (End.Y > Start.Y && End.X > Start.X)
{
foreach (Point pt in star)
{
foreach(Point p in endd)
c.Draw(e.Graphics, brush, pt.X - (p.X - pt.X) / 2 - (p.Y - pt.Y) / 2, pt.Y - (p.Y - pt.Y) / 2 - (p.X - pt.X) / 2, ((p.X - pt.X) + (p.Y - pt.Y)), ((p.X - pt.X) + (p.Y - pt.Y)));
}
}
}
И этот код рисует эллипсы на панели. Однако первый эллипс был нарисован идеально, но другие эллипсы стали такими большими, что покрыли всю панель.
Я хочу сохранить местоположения, потому что после рисования 3-4 эллипсов я попытаюсь сохранить точки в .txt. После этого я загрузлю его, чтобы снова нарисовать. Но есть такая проблема на рисунке: /