最近在用win32编写一个画图板程序,要求实现对图形的选择,其中图形包括椭圆(标准椭圆,就是长轴或短轴都是水平或者垂直的)。
当鼠标左键点击时,要判断点击点 是否在椭圆上是比较困难的(像素比较小,点击点可能离椭圆有一个像素的距离),所以要改为判断点距椭圆边框的距离小于某个值(我是用的是5,用眼睛瞪着屏幕看看5个像素是多长
)
这就要求点到椭圆的最短距离了,N年没这些几何图形了,一点概念都没有了(没到啥地步?就是求点到直线距离公式也花了我半个多小时时间,相当年我做题....
).
不过在我实现鼠标选择矩形时,灵感来了,这里的矩形,边都是水平或者垂直的,因此判断 点 到矩形距离小于某个5像素,直接进行简单的加减和比较就能实现。示意图如下,只要判断点落在黄色区域就行了。
那么椭圆能不能这么判断呢,当然可以了,看了下图,就明白了,
只要判断点在那两个椭圆之间就可以了,至于判断点在椭圆内外,就是带入公式(椭圆标准方程)和1比较就可以了(<1在椭圆内,>1在椭圆外)
阅读(2821) | 评论(0) | 转发(0) |