社区
其它技术问题
帖子详情
求点到曲线的最短距离的算法
rongewu2006
2009-11-16 01:13:17
假如曲线方程:y = a0 + a1*x + a2*x^2 + a3*x^3 + .......
怎么求一个不在曲线上的点到这条曲线的距离。
...全文
7815
3
打赏
收藏
求点到曲线的最短距离的算法
假如曲线方程:y = a0 + a1*x + a2*x^2 + a3*x^3 + ....... 怎么求一个不在曲线上的点到这条曲线的距离。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2009-11-16
打赏
举报
回复
1
如果精度要求不高,还可以编程序对曲线上每个点求到给定点的距离,得出近似解。
berryluo
2009-11-16
打赏
举报
回复
假设要求得点是(x0,y0), 则点到直接上任何一点的距离为
d = ((y-y0)^2 + (x-x0)^2)^0.5
= ((a0 + a1*x + a2*x^2 + a3*x^3 + .......-y0)^2 + (x-x0)^2)^0.5
d^2 = (a0 + a1*x + a2*x^2 + a3*x^3 + .......-x0)^2 + (x-x0)^2
d^2是关于x的多项式,求导取得极值点,计算比较之,不过好像这个算起来也比较复杂
[Quote=引用楼主 rongewu2006 的回复:]
假如曲线方程:y = a0 + a1*x + a2*x^2 + a3*x^3 + .......
怎么求一个不在曲线上的点到这条曲线的距离。
[/Quote]
xingzhe2001
2009-11-16
打赏
举报
回复
求导阿,加入求得点是(x0,y0),
则点到曲线上任一点距离的平方(为了少计算开方)为
f = d^2 = (x-x0)^2 + (y-y0)^2.
对x求导
df/dx = 2(x-x0) + 2(y-y0).dy/dx
其中y和dy/dx根据你给的曲线方程求
df/dx=0为极值点,就是你要找的点
求点
到
曲线
的最
短距离
垂直逼近
算法
y = ln(x) + Math.pow(x,0.000333) + Math.exp(x*x) + x *x 求 (1,2)到该
曲线
的最
短距离
。很简单就是 Math.pow((y - 2)*(y - 2) + (x-1)(x-1),0.5) 求最大值或求导无法求得此距离。或者是 (y-2)/(x-1) * y' = -1 这个时候就需要利用
算法
来求得此距离。 这里引入垂直逼...
计算几何基础
算法
——直线与直线求交
还是继续先写基础
算法
,有了基础
算法
,复杂
算法
就容易讲解了。我更希望自己像写书而不是写论文。书由浅入深,论文需要比较好的基础才能读懂。这篇文章中要介绍的直线与直线求交,是用的非常广泛的基础
算法
之一。像射线法、几何信息采样等很多
算法
都会用到该
算法
,它也可以用到
曲线
求交迭代过程中。本文介绍的
算法
,不会像中学数学中那样列方程组来求解,而是通过向量运算来求解。做几何
算法
一定要熟练掌握向量的各种运算和应用,直线与直线求交就是一个典型的应用场景。关于向量运算不熟悉的朋友可以查看下面这篇文章。
点到指定Bezier
曲线
的最
短距离
点到指定Bezier
曲线
的最
短距离
Bezier
曲线
本质上是一个多项式。 三次
曲线
Q: Q(u)=(1−u)3P0+3(1−u)2uP1+3(1−u)u2P2+u3P3=nu3+ru2+su+v \begin{aligned} Q(u) &= (1-u)^3P_0+3(1-u)^2uP_1+3(1-u)u^2P_2+u^3P_3\\ &=nu^3+ru^2+su+v \end{aligned} Q(u)=(1−u)3P0+3(1−u)2uP1+3(1−u)u
C++
求点
到线段和任意
曲线
的最
短距离
(2)C++基本数据类型和函数的定义和使用 编写C++程序,实现: ①给定任意一个点P和一条线段AB,计算点P到AB的最
短距离
; 图1点到直线最
短距离
示意图 计算点到线段最
短距离
的
算法
描述: 1)计算向量A->P,A->B; 2)定义r1=|AP|cos(a) = dot((A->P)(A->B))/|AB|,表示向量A->P在A->B方向上的投影长度;其中,a是向量A->P与A->B的夹角;dot()是向量点乘; 3)定义r2=r...
求任意一个点到任意函数
曲线
或
曲线
方程(参数方程)上最近距离点的通用方法,含Matlab实现代码
一、问题提出 假如
曲线
外有一个点,如果这个
曲线
是直线,求这个点到直线的距离最近的点,则比较好求,直接作垂直线,再求交点即可。但是,如果这个
曲线
不是直线,而是一个任意弯曲的函数
曲线
甚至是一个参数方程形式的
曲线
,该如何求解呢? 二、解决方案 1、对于求一个点到任意函数
曲线
这种情况,我是通过搜索法实现的。设有函数
曲线
外有一个点,现在以为圆心,半径依次为(半径线性递增或指数递增等)画圆,直到画出的圆能够与函数
曲线
相交。判断圆与
曲线
是否相交的方法如下:如画一个半径为的圆,则对应的范围为,通过对进行0.01的细分
其它技术问题
3,881
社区成员
9,044
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章