Я сделал смайлик в методе tekenScherm (= drawScreen) с заданными переменными x, y, w (= width) и h (= height).Базовые значения этих переменных: (100, 50, 300, 300).Если вы введете эти значения в моем коде, вы получите смайлик.
Теперь я хочу иметь возможность настроить эти значения x, y, w и h, чтобы смайлик оставался относительно одинаковым.
Я уже выяснил, как это сделать для координат x и y, поэтому при изменении, например, координаты x, левый глаз изменится на x + 50, правый глаз на x + 170Таким образом, он остается относительно неизменным.
Теперь проблема заключается в ширине и высоте глаз и рта.Я хочу иметь возможность изменять переменные ширины и высоты ('w', 'h'), и чтобы смайлик оставался примерно таким же.Я пробовал разные вещи, ломая голову часами, но не могу заставить его работать.
Это код:
namespace Smiley2
{
class HalloForm : Form
{
public HalloForm()
{
this.Text = "Smiley";
this.BackColor = Color.White;
this.Size = new Size(500, 500);
this.Paint += this.tekenScherm;
}
void tekenScherm(object obj, PaintEventArgs pea)
{
float x, y, w, h, wOogLinks, wOogRechts;
x = 100; y = 50; w = 300; h = 300;
Pen pen = new Pen(Brushes.Black);
pea.Graphics.FillEllipse(Brushes.Yellow, x, y, w, h);
pea.Graphics.DrawEllipse(pen, x, y, w, h);
pea.Graphics.FillEllipse(Brushes.White, x + 50, y + 50, 75 * (w / 300), 75 / 300f * h);
pea.Graphics.FillEllipse(Brushes.White, x + 170, y + 50, 75 * (w / 300), 75 / 300f * h);
pea.Graphics.DrawArc(pen, x + 90, y + 135, 125f / 300 * w, 100f / 300 * h, 0, 180);
}
}
class HalloWin3
{
static void Main()
{
HalloForm scherm;
scherm = new HalloForm();
Application.Run(scherm);
}
}
}