数学不好,求助一个3维计算的代码

fengyecsdn 2012-07-31 10:56:15
已知一个V3坐标 X Y Z
和一个XY水平面的角度值R
求在给定的方向上 D距离的点的坐标
例如
V3 x=100 Y=50 Z=20
角度值R= 90 (0~360表示一个方向,是XY水平面上的一个方向 0 表示X正方向 180表示X负方向)
给了一个距离 D =30
求 在V3点上R方向上D距离的点坐标

小弟嘴笨,不知道表述清楚没,高数基本是一点不会,求大侠给个代码算法,最好有注释。
谢谢了。

...全文
103 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyecsdn 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
没看太明白你的意思,如果你单单求平行于XY平面的那个点,Z值是不变的:

C# code


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
……
[/Quote]

之前一直没认真想,其实这就是个2纬几何问题,昨天发帖之后,突然想明白了,已经写好代码了,呵呵跟楼主的类似。 给分
晚安苏州 2012-08-01
  • 打赏
  • 举报
回复
没看太明白你的意思,如果你单单求平行于XY平面的那个点,Z值是不变的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] p1 = new int[3] { 100, 50, 20 };//原始点
int[] p2 = new int[3];//要求的点
double d = 30;//两点之间的距离
double pai = 3.1415926;//π,将角度转化成弧度制用;

Console.WriteLine("请输入角度");
int jiaodu = Convert.ToInt32(Console.ReadLine());//输入角度

double hudu = jiaodu * pai / 180;//将角度转化成弧度制

p2[0] = p1[0] + (int)(d * Math.Cos(hudu));//求X坐标
p2[1] = p1[1] + (int)(d * Math.Sin(hudu));//求Y坐标
p2[2] = p1[2];//Z坐标不变
//显示三个坐标值
foreach (int item in p2)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
}
时间有限,取得π是近似值,有时间楼主可以优化下精确值。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧