用C#写一个开放式的计算,要求是输入两个顶点的坐标和半径,计算圆心位置的程序
时间: 2024-10-18 22:18:59 浏览: 11
在C#中编写一个开放式计算圆心位置的程序,你可以创建一个简单的控制台应用程序。首先,你需要定义一个结构体表示三维空间中的点,然后计算给定两点间的中点作为圆心候选。这里是一个简化的示例:
```csharp
using System;
public struct Point3D
{
public double X;
public double Y;
public double Z;
}
public static class CircleCenterCalculator
{
public static Point3D CalculateCircleCenter(Point3D pointA, Point3D pointB, double radius)
{
// 计算两点之间的中点
var midX = (pointA.X + pointB.X) / 2;
var midY = (pointA.Y + pointB.Y) / 2;
var midZ = (pointA.Z + pointB.Z) / 2;
// 返回圆心位置
return new Point3D(midX, midY, midZ);
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入第一个顶点的坐标(X Y Z):");
string[] inputA = Console.ReadLine().Split(' ');
Point3D pointA = ParseInput(inputA);
Console.WriteLine("请输入第二个顶点的坐标(X Y Z):");
string[] inputB = Console.ReadLine().Split(' ');
Point3D pointB = ParseInput(inputB);
Console.WriteLine("请输入圆的半径:");
double radius = double.Parse(Console.ReadLine());
Point3D center = CircleCenterCalculator.CalculateCircleCenter(pointA, pointB, radius);
Console.WriteLine($"圆心的位置是: ({center.X}, {center.Y}, {center.Z})");
Console.ReadKey();
}
static Point3D ParseInput(string[] coordinates)
{
if (coordinates.Length != 3)
throw new ArgumentException("输入错误,需要三个值表示点的坐标.");
double x, y, z;
if (!double.TryParse(coordinates[0], out x) ||
!double.TryParse(coordinates[1], out y) ||
!double.TryParse(coordinates[2], out z))
throw new ArgumentException("坐标值无效");
return new Point3D(x, y, z);
}
}
阅读全文