3个点绘制一个圆,并获取生成圆路线的所有坐标点

使用 C# 通过 3个点,绘制一个圆 ,并使用 DrawArc方法来绘制一个圆,已OK,

那请问如何获取绘画该圆的每一个坐标点?最并输入圆所有的坐标点(数组)

img

在 C# 中,可以通过计算圆的每个点的坐标来获取绘画圆的所有坐标点。以下是一个获取圆的所有坐标点并存储在数组中的示例代码:

using System;

class Program
{
    static void Main()
    {
        int centerX = 0; // 圆心X坐标
        int centerY = 0; // 圆心Y坐标
        int radius = 5; // 圆的半径

        int numPoints = 360; // 圆的点的数量,这里取360个点以确保圆的光滑绘制
        double angleIncrement = 2 * Math.PI / numPoints; // 每个点的角度增量

        // 存储圆的坐标点的数组
        int[,] circlePoints = new int[numPoints, 2];

        // 计算圆的每个点的坐标
        for (int i = 0; i < numPoints; i++)
        {
            double angle = i * angleIncrement;
            int x = (int)(centerX + radius * Math.Cos(angle));
            int y = (int)(centerY + radius * Math.Sin(angle));

            circlePoints[i, 0] = x;
            circlePoints[i, 1] = y;
        }

        // 输出圆的所有坐标点
        for (int i = 0; i < numPoints; i++)
        {
            Console.WriteLine("Point {0}: ({1}, {2})", i + 1, circlePoints[i, 0], circlePoints[i, 1]);
        }
    }
}

这段代码使用了三个变量:圆心的X坐标(centerX),圆心的Y坐标(centerY),以及圆的半径(radius)。它通过计算每个点的角度,并使用三角函数来计算点的坐标。最后,它将所有点的坐标存储在一个二维数组(circlePoints)中,并将其输出到控制台。你可以根据自己的需求修改这个示例代码。

通过给定的圆心坐标和半径来计算绘画圆的每一个坐标点,并存储在一个数组中:

using System;

class Program
{
    static void Main(string[] args)
    {
        // 圆心坐标
        int centerX = 0;
        int centerY = 0;
        // 圆的半径
        int radius = 5;

        // 存储圆的所有坐标点
        int[][] circlePoints = GetCirclePoints(centerX, centerY, radius);

        // 输出圆的所有坐标点
        for (int i = 0; i < circlePoints.Length; i++)
        {
            int[] point = circlePoints[i];
            Console.WriteLine($"Coordinate {i + 1}: ({point[0]}, {point[1]})");
        }
    }

    static int[][] GetCirclePoints(int centerX, int centerY, int radius)
    {
        int[][] points = new int[360][];

        for (int angle = 0; angle < 360; angle++)
        {
            double radians = angle * Math.PI / 180.0;
            int x = (int)(centerX + radius * Math.Cos(radians));
            int y = (int)(centerY + radius * Math.Sin(radians));
            points[angle] = new int[] { x, y };
        }

        return points;
    }
}

感谢各位的回复,这个圆的起点是可以随意设置吗?现在这些默认都是从0开始

img

有了圆心,还需要指定段数,按照段数生成点坐标存入数组即可。

在你的基础上改还是重新写

来自GPT的回答:


```bash
要获取绘制圆的每个坐标点,你可以使用三角函数来计算圆上的点的位置。具体步骤如下:

定义圆的半径(r)和圆心坐标(centerX、centerY)。
使用一个循环,迭代从0度到360度的角度。
在每个角度上,计算相应的弧度(radians):radians = angle * (Math.PI / 180)。
使用三角函数(Math.Sin 和 Math.Cos)计算圆上点的位置:
x = centerX + r * Math.Cos(radians)
y = centerY + r * Math.Sin(radians)
将每个点的坐标(x、y)存储到一个数组中。
以下是使用 C# 实现这个过程的示例代码:

csharp
Copy code
using System;

public class Program
{
    public static void Main()
    {
        int radius = 5; // 圆的半径
        int centerX = 10; // 圆心的 X 坐标
        int centerY = 10; // 圆心的 Y 坐标

        int numPoints = 360; // 要获取的点的数量
        double[] xCoordinates = new double[numPoints];
        double[] yCoordinates = new double[numPoints];

        for (int angle = 0; angle < 360; angle++)
        {
            double radians = angle * (Math.PI / 180);
            double x = centerX + radius * Math.Cos(radians);
            double y = centerY + radius * Math.Sin(radians);

            xCoordinates[angle] = x;
            yCoordinates[angle] = y;
        }

        // 输出圆上的所有坐标点
        for (int i = 0; i < numPoints; i++)
        {
            Console.WriteLine("Point {0}: ({1}, {2})", i + 1, xCoordinates[i], yCoordinates[i]);
        }
    }
}
运行此代码将生成圆上的每个坐标点,并将其输出到控制台。你可以根据需要修改圆的半径和圆心坐标来适应你的情况。

```

三点可以算园心,可以算半径。
然后有圆的参数方程和标准方程
带入计算即可

ps 一个圆上有无穷个坐标点,他取决于你要的精度。