Как задать окружность не в центре координат - C#
Формулировка задачи:
Извините, если создал тему не в том разделе.
Мне нужно задать полу-окружность(рогами вверх) не в центре координат. Координаты центра полу-окружности (-7;2), радиус R = 2.
У меня ничего не оплучается, то считает только верхнюю полуокружность, по вообще ничего не считается.
Пробовал эти формулы
(ссылки на картинки формул с википедии)
http://upload.wikimedia.org/math/3/6...f4cde92eb8.png
http://upload.wikimedia.org/math/1/9...667fb5a77a.png
ПОмогите. Я мозг поломал уже.
я на бумажке посчитал, у меня под корнем получается отрицательное значение. Такого не может быть же. ПОмогите, какую формулу использовать?((
Решение задачи: «Как задать окружность не в центре координат»
textual
Листинг программы
public partial class Form1 : Form
{
Graphics graphics;
Circle circle;
public Form1()
{
InitializeComponent();
graphics = this.CreateGraphics();
circle = new Circle(new RectangleF(this.Width / 2, this.Height / 2, 100, 100));
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
circle.Draw(graphics);
}
}
public class Circle
{
public RectangleF rect;
float step = 0.001f;
public Circle(RectangleF rect)
{
this.rect = rect;
}
public void Draw(Graphics graphics)
{
for (float i = 0; i < (float)Math.PI; i += step)
{
double x = (rect.Width / 2) * Math.Cos(i) + rect.X + rect.Width / 2;
double y = (rect.Height / 2) * Math.Sin(i) + rect.Y + rect.Height / 2;
graphics.FillEllipse(Brushes.Red, (float)x - 0.5f, (float)y - 0.5f, 1, 1);
}
}
}