首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

GDI画圆弧,该如何解决

2012-12-16 
GDI画圆弧通过鼠标点击不共线 的三个点,那确定一条弧,感觉特别难,我已经将这三点所在的圆心和半径,和外接

GDI画圆弧
通过鼠标点击不共线 的三个点,那确定一条弧,感觉特别难,我已经将这三点所在的圆心和半径,和外接矩形求出来了。
现在所知道的数据有 三个点(起点,终点,弧上一点),弧所在圆圆心,半径,外接矩形
通过GDI函数ARC画弧,但是不能自动判断改圆弧是优弧还是劣弧,主要是判断第二个点是否在圆弧上,希望各位能提供算法,我在网上找遍了也没有好的解决方案
[最优解释]
我前一段刚做了一个这方面的东西,在公司电脑上,拷贝不出去,你可以先判断一下起点和终点在哪个区域,然后根据中间的点判断是顺时针还是逆时针,以及起点和中点在以圆心为坐标的圆的度数,然后根据圆心和半径,求出其他点的坐标,如每隔一度求一个点,然后把求到的所有的点用直线连接起来,出现的就是你所需要的三点绘制一个圆弧。
这中间有一点是你要注意的,就是以圆心为坐标原点的坐标系中,360度点和0度点是在同一条直线上,所以当绘制的图形经过这的时候,要注意相应的转换,已经说的够详细的了吧,做不出来那就是你的问题了。
[其他解释]
起点,终点不是确定了吗?怎么不能区分优劣
[其他解释]
你看一下ARC函数然后知道数据是三个点,你知道没这么简单了
[其他解释]
有可能画出来的弧,第二个点没有在弧上面
[其他解释]
如果就是三个点,不知道从哪个点开始哪个点结束,那本来就有三种画法(整圆去掉三条弧中的一条)。这个是你要提供的信息。
如果你能确定中间点,按象限,x,y比较下另外两个点即可确定谁是起点。
arc函数默认是逆时针画,你也可以SetArcDirection。
[其他解释]
我可以确定中心点,就是不知道怎么确定终点和起点
[其他解释]
换算成极坐标
[其他解释]
已经解决,老大给了个算法,公司加密贴不出来,抱歉,就一个公式
[其他解释]
日画你个球圆弧
[其他解释]
。。。你求出圆心之后,把终点和起点连一条直线,然后把中间点和圆心连一条直线,如果这两条线段相交,那么就是劣弧,如果不相交,就是优弧。

他娘的,这难道不是个初中数学题么?

热点排行