gpt4 book ai didi

C# 从圆边到圆边画线

转载 作者:行者123 更新时间:2023-12-02 22:43:39 26 4
gpt4 key购买 nike

假设我有 2 分

Point p1 = new Pen(100, 100);
Point p2 = new Pen(200, 150);

然后我用给定的半径为该点绘制椭圆,该点位于椭圆的中心。

int radius = 5;
RectangleF rectangle = new RectangleF();
rectangle.Width = radius * 2;
rectangle.Height = radius * 2;
rectangle.X = Convert.ToSingle(p1.X - radius);
rectangle.Y = Convert.ToSingle(p1.Y - radius);
g.FillEllipse(brush, rectangle);
rectangle.X = Convert.ToSingle(p2.X - radius);
rectangle.Y = Convert.ToSingle(p2.Y - radius);
g.FillEllipse(brush, rectangle);

g.DrawLine(pen, p1, p2);

如果我在这些点之间画线,我会得到从一个中心到另一个中心的线。目前我可以接受,但我想做的是,这条线从椭圆的边缘开始,所以它不会穿过它。我怎样才能做到这一点?

最佳答案

找到答案:

    public static PointF getPointOnCircle(PointF p1, PointF p2, Int32 radius)
{
PointF Pointref = PointF.Subtract(p2, new SizeF(p1));
double degrees = Math.Atan2(Pointref.Y, Pointref.X);
double cosx1 = Math.Cos(degrees);
double siny1 = Math.Sin(degrees);

double cosx2 = Math.Cos(degrees + Math.PI);
double siny2 = Math.Sin(degrees + Math.PI);

return new PointF((int)(cosx1 * (float)(radius) + (float)p1.X), (int)(siny1 * (float)(radius) + (float)p1.Y));
}

关于C# 从圆边到圆边画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10381863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com