!!!已知屏幕上一直线上的A、B两点的坐标,如何计算出交于A或B点的一条垂线上任一点的坐标????

OnDraw 2002-01-06 05:27:38
...全文
740 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
OnDraw 2002-01-10
  • 打赏
  • 举报
回复
goodsong(如风):假设直线上两个点的坐标是a(a1,a2)和b(b1,b2),你能完整的说一下整个的步骤吗?或者说说这个bv怎么代入直线方程?多谢了
yoursoft 2002-01-10
  • 打赏
  • 举报
回复
老兄,如果你是用来在屏幕上画垂线用,你首先得确定垂线是直线还是射线或线段,如果仅仅是表示垂线,可以按屏幕边缘线的横或纵坐标带入垂线方程式求另一个纵或横坐标.
一可以将AB线段的长度作为该垂线的长度来求另一点坐标.
计算方法楼上的朋友已经有了.
goodsong 2002-01-10
  • 打赏
  • 举报
回复
to OnDraw:
对,将B点坐标代入y=kv*x+bv,就可以求出bv,这样直线方程就求出了,要画直线就没问题了,
在直线上任取两点,对你说的那种情况,实际上只而再取一点,加上B点就可画出垂线。对于斜率
不存在的情况,需要单独考虑,不过这种情况很简单。
goodsong 2002-01-10
  • 打赏
  • 举报
回复
假设作过A点(x1,y1)的垂线
1.若由A(x1,y1),B(x2,y2)决定的直线平行于x轴或y轴,要得到垂线是很容易的
if(x1==x2&&y1!=y2),则直线AB平行于y轴,垂线为y=y1, 其上的两点为(x1,y1),(x3,y1),x3为不等于x1的任一值
if(x1!=x2&&y1==y2),则直线AB平行于x轴,垂线为x=x1,其上的两点为(x1,y1),(x1,y3),y3为不等于y1的任一值
2.若直线AB不平行于x轴或y轴,则
斜率k=(y2-y1)/(x2-x1)
其垂线的斜率为kv=-1/k
于是可以假设直线的斜截式方程为:y=kv*x+bv,bv是垂线在y轴上的截距
因为垂线过A点(x1,y1)
所以有y1=kv*x1+bv,则bv=y1-kv*x1=y1+x1/k
所以求得垂线的方程为:y=-x/k+(y1+x1/k)
显然此真线过A(x1,y1),只需再取一点C(x3,y3),
不妨取x3=x1+2,y3=-x3/k+(y1+x1/k)
画直线AC即可
完毕


trivita 2002-01-09
  • 打赏
  • 举报
回复
天哪,sin、cos都是算法里面应该尽量避免的!而且你考虑了xB-xA=0的情况吗?
这个算法不好,算都算死了。
关于直线,你该看看Breshmen
Arter 2002-01-08
  • 打赏
  • 举报
回复
AB = |AB|(cos(arg(AB)) +i*sin(arg(AB))
arg(AB)= actan((yB-yA)/(xB-xA));

X = A + k*(cos(arg(AB)+Pi/2) + i*sin(arg(AB)+Pi/2))
or = B + k*(cos(arg(AB)+Pi/2) + i*sin(arg(AB)+Pi/2))

(x,y)=( x0 -k*sin(actan((yB-yA)/(xB-xA))), y0 + k*cos(actan((yB-yA)/(xB-xA)))
(x0,y0)=(xA,yA) or (xB,yB),k is a Real.
trivita 2002-01-08
  • 打赏
  • 举报
回复
真简单,学过复数吧?
假设Va=Xa+i*Ya,Vb=Xb+i*Yb为AB两点的向量,问题就是再求一个C点的Vc=Xc+i*Yc,
Vc=-i*(Va-Vb)+Vb(这里以B点为中心)
然后在连接BC,就是你要求的直线了(已知两点,用参数曲线即可)
OnDraw 2002-01-07
  • 打赏
  • 举报
回复
to:liuto(b34)用这个y=kv*x+bv代替第三步那个y=kv+bv吗?
OnDraw 2002-01-07
  • 打赏
  • 举报
回复
1up
liuto 2002-01-07
  • 打赏
  • 举报
回复
俺写漏了一个
垂线方程是:y=kv*x+bv
OnDraw 2002-01-06
  • 打赏
  • 举报
回复
to:liuto(B34) :非常感谢,但是还是不太明白,假如我的坐标直线上a、b两点的坐标分别是a(a1,a2)和b(b1,b2),并且我想做一条经过b点的垂线,你看看我带入公式的方法对不对

k=(b2-a2)/(b1-a1)
kv=(-1)*(1/k)
bv=b2-kv //此bv是垂线上x点坐标还是y点坐标?
bv=b1-kv // 此bv是垂线上x点坐标还是y点坐标?

liuto 2002-01-06
  • 打赏
  • 举报
回复
1.算直线的斜率 k=(yb-ya)/(xb-xa)
2.垂线的斜率 kv=(-1)*(1/k)
3.垂线方程 y=kv+bv
4.用A点或B点坐标代入解出bv,得垂线方程
5.该轮到你了:-)
OnDraw 2002-01-06
  • 打赏
  • 举报
回复
我想做一条垂直于这个直线的线段,但是不知道应该怎么计算垂线上另一个点的坐标
goodsong 2002-01-06
  • 打赏
  • 举报
回复
不懂你的意思,你的垂线是凭空冒出来的吗?
计算几何算法(含源代码) ㈠ 的基本运算 1. 平面上之间距离 1 2. 判断是否重合 1 3. 矢量叉乘 1 4. 矢量乘 2 5. 判断是否在线段上 2 6. 求饶某旋转后的坐标 2 7. 求矢量夹角 2 ㈡ 线段及直线的基本运算 1. 与线段的关系 3 2. 求到线段所在直线垂线的垂足 4 3. 到线段的最近 4 4. 到线段所在直线的距离 4 5. 到折线集的最近距离 4 6. 判断圆是否在多边形内 5 7. 求矢量夹角余弦 5 8. 求线段之间的夹角 5 9. 判断线段是否相交 6 10.判断线段是否相交但不交在端处 6 11.求线段所在直线的方程 6 12.求直线的斜率 7 13.求直线的倾斜角 7 14.求关于某直线的对称 7 15.判断两条直线是否相交及求直线 7 16.判断线段是否相交,如果相交返回交 7 ㈢ 多边形常用算法模块 1. 判断多边形是否简单多边形 8 2. 检查多边形顶的凸凹性 9 3. 判断多边形是否凸多边形 9 4. 求多边形面积 9 5. 判断多边形顶的排列方向,方法一 10 6. 判断多边形顶的排列方向,方法二 10 7. 射线法判断是否在多边形内 10 8. 判断是否在凸多边形内 11 9. 寻找集的graham算法 12 10.寻找集凸包的卷包裹法 13 11.判断线段是否在多边形内 14 12.求简单多边形的重心 15 13.求凸多边形的重心 17 14.求肯定在给定多边形内的一个 17 15.求从多边形外出发到该多边形的切线 18 16.判断多边形的核是否存在 19 ㈣ 圆的基本运算 1 .是否在圆内 20 2 .求不共线的三所确定的圆 21 ㈤ 矩形的基本运算 1.已知矩形三坐标,求第4坐标 22 ㈥ 常用算法的描述 22 ㈦ 补充 1.两圆关系: 24 2.判断圆是否在矩形内: 24 3.到平面的距离: 25 4.是否在直线同侧: 25 5.镜面反射线: 25 6.矩形包含: 26 7.两圆交: 27 8.两圆公共面积: 28 9. 圆和直线关系: 29 10. 内切圆: 30 11. 求切: 31 12. 线段的左右旋: 31 13.公式: 32

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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