求圆的割线的垂直线

天马座的流星拳 2004-08-23 01:34:14
小弟有一个课题,实在没办法了,干脆在这里问好了。不知道哪些条件是必需的,所以尽可能说得细点。
已知场景上有一个半径为15的圆,圆点0(23,25),从圆上任意一点A(座标不一定,详细请看下面)与圆外另一点B(47,30)连接成一条线段AB(要用AS代码画出)。
求从圆心连接一条线段,垂直AB于点C(用AS画出),求OC的长度。

注:这里要考虑两个问题,就是这条垂线OC是实际连接到AB上,还是只连接到AB的延长线上,如果是连接到延长线上,还得画一条延长线才行呀?
希望在代码中都可以考虑到这个问题。

50只是意思一下,另开贴子给分!
...全文
213 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
在我看来,真的是不可思意!
虽然因为我写错一个字,上面写的“从圆上任意一点A与圆外另一点B(47,30)连接成一条线段AB。”应该是“从圆内”的,久不用数学,居然写错了。不过,这些代码我相信如何参透了应该可以自己修改。
我要好好研究一下代码,我看100分应该值的,觉得不够再加好了。
记下了,100分给“drj2008(东方神韵)”的,谢谢了。
drj2008 2004-08-25
  • 打赏
  • 举报
回复
源代码如下:
mccir是园实例称;
xo,yo是园心的坐标
xa,ya是A的坐标
xb,yb是B的坐标
xc,yc是C的坐标
为了便于观察,分别用mcbaa、mcbab、mcbac、mcbao四个小球表示A点、B点、C点、O点
我试试成功。
xo=mcbao._x=mccir._x=230;
yo=mcbao._y=mccir._y=250;
xb=mcbab._x=470;
yb=mcbab._y=300;
r=150;
v=0;
mccir._width=2*r;
mccir._height=2*r;
_root.onEnterFrame=function()
{
v+=1;
xa=mcbaa._x=xo+r*Math.cos(v*Math.PI/180);
ya=mcbaa._y=yo+r*Math.sin(v*Math.PI/180);
clear();

k=(ya-yb)/(xa-xb);
xc=mcbac._x=(yo-yb+k*xb+xo/k)/(k+1/k);
yc=mcbac._y=yb+k*(xc-xb);
lineStyle(1,0x00ff00);
moveTo(xb,yb);
if(xa<=xc)
{
lineTo(xa,ya);
}
else
{
lineTo(xc,yc)
}
lineStyle(1,0x0000ff);
moveTo(xo,yo);
lineTo(xc,yc);
}
  • 打赏
  • 举报
回复
有网友这样说:
  首先是判断C点的座标x或y是否是在AB线段內, 如果是在线段內就判断AB是在C的角度, 之后再以角度画线。

  斜率相乘为1就可以了...这两条线就垂直了..

只是,我刚刚学AS,什么都不懂,具体应该怎么做一点都不会,比如,如何枚举某线段上的所有点,如果可以,一定数值内的延长线上的点也要
drj2008 2004-08-24
  • 打赏
  • 举报
回复
朋友,这个课题只能这样做:
1、用数学方法求出C点的坐标
2、用数学方法求出OC的长度。
记住:
数学是实质
FLASH是外表
  • 打赏
  • 举报
回复
呵呵,也是,只是在我的课题里,这个圆及圆上的点是要转动的。
jiangjian0427 2004-08-23
  • 打赏
  • 举报
回复
好像根圆没有关系哦
就是由一点向一直线做垂直线嘛
  • 打赏
  • 举报
回复
如果不想整理代码,请把试好的例子发到ouyongke@163.com,收到后结贴、给分。

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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