Мне надо нарисовать с помощью кликов на форме многоугольник Я многоугольник нарисовал. И надо сделать над ним следующие действия:
Повернуть его около неподвижной точки
Маштабировать его
Зеркально отобразить его
Далее код рисования многоугольника
int count, num_Tochka;
Graphics gr;
Point[] pt;
double sum;
double d;
bool move_Tochka;
Pen pen_shtrih;
Pen pen_lastik;
Pen pen_base;
double DistanceTo(int i)
{
double d;
d = (pt[i].X - pt[i+1].X) * (pt[i].X - pt[i+1].X) + (pt[i].Y - pt[i+1].Y) * (pt[i].Y - pt[i+1].Y);
return Math.Sqrt(d);
// return d;
}
double Perimetr()
{
for (int i = 0; i < count-1; i++)
{
sum += DistanceTo(i);
//sum += Math.Sqrt(Math.Pow((pt[i + 1].X – pt[i].X), 2) + Math.Pow((pt[i + 1].Y - pt[i].Y), 2));
}
d = (pt[0].X - pt[count -1].X) * (pt[0].X - pt[count -1].X) + (pt[0].Y - pt[count -1].Y) * (pt[0].Y - pt[count -1].Y);
sum += Math.Sqrt(d);
return sum;
}
private void button1_Click(object sender, EventArgs e)
{
gr.Clear(Color.White);
Array.Resize(ref pt, 1);
count = 0;
move_Tochka = false;
}
private void Form1_Load(object sender, EventArgs e)
{
gr = pictureBox1.CreateGraphics();
pen_base = new Pen(Color.Tomato, 3);
pen_lastik = new Pen(Color.White, 3);
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
if (move_Tochka != true)
{
pt[count] = e.Location;
listBox1.Items.Add(pt[count]);
gr.FillEllipse(Brushes.Black, pt[count].X - 2, pt[count].Y - 2, 5, 5);
count += 1;
Array.Resize(ref pt, count + 1);
}
}
private void pictureBox1_DoubleClick(object sender, EventArgs e)
{
}
private void pictureBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
Array.Resize(ref pt, count);
gr.DrawPolygon(pen_base, pt);
}
private void button2_Click(object sender, EventArgs e)
{
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
for (int i = 0; i < count; i++)
{
if((Math.Abs(pt[i].X-e.X)<=5)&&((Math.Abs(pt[i].Y-e.Y)<=5)))
{
num_Tochka = i;
move_Tochka = true;
}
}
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if(move_Tochka&e.Button == MouseButtons.Left)
{
gr.DrawPolygon(pen_lastik, pt);
pt[num_Tochka] = e.Location;
gr.DrawPolygon(pen_base, pt);
label1.Text = "perimetr = " + Math.Round(Perimetr(), 2);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здравствуйте, заинтересовался вопросом создания консольного приложения на C# для android, скажите пожалуйста, каким образом это можно сделать
Использую htmlagilitypackНеобходимо вытащить ссылку и перейти по ней