Здесь я должен создать ромб с помощью метода Drawlines и заставить его двигаться горизонтально по пути, который находится на полпути от вершины формы.
Я создал бриллиант, и он движется горизонтально, но я хочу, чтобы он начал двигаться с позиции, которая находится на полпути от вершины формы.
Это код для создания бриллианта,
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Point p1 = new Point(5+x, 0);
Point p2 = new Point(10+x, 5);
Point p3 = new Point(5+x, 10);
Point p4 = new Point(0+x, 5);
Point[] ps = { p1, p2, p3, p4, p1 };
Pen p_yellow = new Pen(Color.Yellow, 5);
g.DrawLines(p_yellow, ps);
this.BackColor = System.Drawing.Color.DarkBlue;
}
Я могу заставить его двигаться, используя таймер, а следующий код:
private void timer1_Tick(object sender, EventArgs e)
{
if (x < 500)
x += 2;
else
timer1.Enabled = false;
this.Invalidate();
}
скажите, пожалуйста, как привести алмаз в точку, находящуюся на полпути от вершины формы?
private void Form1_Paint(object sender, PaintEventArgs e)
{
int height = 10;
int middle = height / 2;
int middleform = Form1.height / 2;
int diamondMiddleOfTheForm;
diamondMiddleOfTheForm = middleForm - middle;
Graphics g = e.Graphics;
Point p1 = new Point(5 + x, 0 + diamondMiddleOfTheForm);
Point p2 = new Point(10 + x, 5 + diamondMiddleOfTheForm);
Point p3 = new Point(5 + x, 10 + diamondMiddleOfTheForm);
Point p4 = new Point(0 + x, 5 + diamondMiddleOfTheForm);
Point[] ps = { p1, p2, p3, p4, p1 };
Pen p_yellow = new Pen(Color.Yellow, 5);
g.DrawLines(p_yellow, ps);
this.BackColor = System.Drawing.Color.DarkBlue;
}
Показывает ошибку при middleForm = Form1.Height / 2
и diamondMiddleOfTheForm = middleForm - middle
Я прошу прощения за свою ошибку, если я сделал что-либо в реализации того, что вы сказали ...