C++处理点在椭圆上的问题

您所在的位置:网站首页 椭圆内一点到椭圆的距离 C++处理点在椭圆上的问题

C++处理点在椭圆上的问题

2024-05-31 16:01| 来源: 网络整理| 查看: 265

最近,在工作中遇到需要处理鼠标选中椭圆的问题,思来想去,最后老老实实使用标准方程来解决的。今天,一起假装高中生 _。

不多废话,直接上图: 在这里插入图片描述 场景描述: 在平面直角坐标系中,已知A、B两点坐标,并且画以AB为对角线的矩形的内接椭圆哦O,判断光标是否在椭圆上(选中该椭圆对象,椭圆高亮)。 首先,复习下焦点不在坐标轴的椭圆的方程: 在这里插入图片描述 点O(c,d)即为该椭圆中心点。

这里,我在实际项目中,为了鼠标选中椭圆明显,设置10%的上下浮动。 来看看具体实现:

bool PtInEllipse(CPoint pt1, CPoint pt2, CPoint pt0) { CPoint ptCenter((pt2.x + pt1.x) / 2, (pt2.y + pt1.y) / 2); const int nLengthHorizon = abs(pt2.x - pt1.x) / 2;//a const int nLengthVertical = abs(pt2.y - pt1.y) / 2;//b float fRate = ((float)(pow(pt0.x - ptCenter.x, 2)) / pow(nLengthHorizon, 2)) + ((float)(pow(pt0.y - ptCenter.y, 2)) / pow(nLengthVertical, 2)); if (0.9


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3