using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test
{
public partial class Form1 : Form
{
int circleDiameter;
public Form1()
{
InitializeComponent();
circleDiameter = 100;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Point CenterPoint = new Point()
{
X = this.ClientRectangle.Width / 2,
Y = this.ClientRectangle.Height / 2
};
Point topLeft = new Point()
{
X = (this.ClientRectangle.Width - circleDiameter) / 2,
Y = (this.ClientRectangle.Height - circleDiameter) / 2
};
Point topRight = new Point()
{
X = (this.ClientRectangle.Width + circleDiameter) / 2,
Y = (this.ClientRectangle.Height - circleDiameter) / 2
};
Point bottomLeft = new Point()
{
X = (this.ClientRectangle.Width - circleDiameter) / 2,
Y = (this.ClientRectangle.Height + circleDiameter) / 2
};
Point bottomRight = new Point()
{
X = (this.ClientRectangle.Width + circleDiameter) / 2,
Y = (this.ClientRectangle.Height + circleDiameter) / 2
};
e.Graphics.DrawEllipse(Pens.Red,topLeft.X, topLeft.Y, circleDiameter, circleDiameter);
e.Graphics.DrawLine(Pens.Red, CenterPoint, topLeft);
e.Graphics.DrawLine(Pens.Red, CenterPoint, topRight);
e.Graphics.DrawLine(Pens.Red, CenterPoint, bottomLeft);
e.Graphics.DrawLine(Pens.Red, CenterPoint, bottomRight);
}
}
}
The result is a circle in the center of the Form and inside an X but the X is getting out of the circle bounds and i want the X inside the topLeft topRight bottomLeft bottomRight to get exactly to the circle bounds. How can i repair it ?
Before it was e.Graphics.DrawEllipse it was e.Graphics.DrawRectangle and it was ok but once i changed it to DrawEllipse the X inside is getting out of the circle bounds borders.
It’s been a while since I’ve done this. You can use Cos and Sin to calculate a point on a circle, something like this:
I can’t remember if cos is x or y but it doesn’t really matter it just changes what you consider to be the 0 degree point on the circle. Anyway, because your angle is always 45 degrees and cos(45) and sin(45) are the same you just need to multiply your distance by 0.70710678118654752440084436210485 or as someone said 1/sqrt(2)
eg