Как задать окружность не в центре координат - 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д