点矩阵,判断三个点的角度

狙击手 2009-12-08 09:23:42
我现在有一个数组,这个数组是在二维坐标系中的点(XY坐标),我想在ASP.NET或者SQL中通过什么函数可以确定相邻三个点所形成两条线的夹角,中间点为夹角顶点。我听说有这样一种技术叫做“幅列调用”,有谁听说过,使用过请指点一下。
...全文
178 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
狙击手 2009-12-17
  • 打赏
  • 举报
回复
感觉自己写的或许没有微软的效率高。呵呵。
liherun 2009-12-11
  • 打赏
  • 举报
回复
函数还不是代码写出来封装的
上千上万个点,你要求什么东西出来?
babyofbaby 2009-12-11
  • 打赏
  • 举报
回复
用库函数和用自己写的函数效率是一样的。
狙击手 2009-12-11
  • 打赏
  • 举报
回复
谢谢楼上的所有同仁。
gomoku 你的代码我也看了,谢谢。
狙击手 2009-12-11
  • 打赏
  • 举报
回复
sql 里 C#里都没有这样的函数吗? 可惜了。
如果我有上千上万个点的话,效率是不是很低,大家还有没有批量处理的方式,性能高点的?拜托。
因为我们的点会有很多,而且性能要求比较高。
谢谢。
gomoku 2009-12-08
  • 打赏
  • 举报
回复
static float AngleInDegree(PointF p1, PointF p2, PointF p3)
{
PointF p12 = Normalize(Subtract(p1, p2));
PointF p32 = Normalize(Subtract(p3, p2));
return (float)(Math.Acos(Dot(p12, p32)) * 180 / Math.PI);
}

static float Dot(PointF p1, PointF p2)
{
return p1.X * p2.X + p1.Y * p2.Y;
}

static PointF Subtract(PointF p1, PointF p2)
{
return new PointF(p1.X - p2.X, p1.Y - p2.Y);
}

static PointF Normalize(PointF p)
{
float length = (float) Math.Sqrt(p.X * p.X + p.Y * p.Y);
if (length < 10e-6) throw new ArgumentException();
return new PointF( p.X / length, p.Y/length);
}
babyofbaby 2009-12-08
  • 打赏
  • 举报
回复
楼主说了,就是数组里中间的那个元素为中间点
liherun 2009-12-08
  • 打赏
  • 举报
回复
如何才能确定哪个点是中间点
梦里开天 2009-12-08
  • 打赏
  • 举报
回复
这得自己建模写算法
babyofbaby 2009-12-08
  • 打赏
  • 举报
回复
没有这样的库函数吧 ,要自己写一个函数算。也不麻烦啊
liherun 2009-12-08
  • 打赏
  • 举报
回复
没听过
可以写个算法求

111,120

社区成员

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

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

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