皮肤偏黑穿红色好看吗:算法问题 高手请进

来源:百度文库 编辑:高考问答 时间:2024/05/08 05:42:01
小弟近日作2维CAD,在选中 扇形 时遇到问题,求助高手

1.如何判断一点是否在 扇形 内(含有扇弧上)?
《50分》

2.如何确定 扇形 的最左\最右\最上\最下值?
《50分》

1.过点作任意直线(通常是平行于X轴),如果与图形有一个交点,则在图形外面,如果有两个交点,如果两个交点一此点的两侧,则在图形内,如果两个交点在同一侧,则在图形外
2.光珊化后可能处理起来比较容易,不然就必需得到图形的所在方程,分别求出所有在最大小值...

第一个问题:
无效昵称的解答思路是对的,并且这是对任意图形均通用的一总算法(当然,对于凹多边形,不是看一个点还是两个点了,而是看奇数个点还是偶数个点)
不过要纠正个小问题:如果有一个交点,则在扇弧上或顶点上。还存在扇形的边平行于x轴的问题,在计算前先判断一下即可。
第二个问题:
把扇形放到圆里问题就很清楚了。圆的左\最右\最上\最下值分别为水平/垂直直径与圆弧的交点。因此对于扇形来说,如果水平、垂直直径在扇形中,则相应的焦点是某一极值。否则极值即为三个顶点坐标值中的极值。判断水平、垂直直径是否在扇形中很简单,分别算一下扇形两条边的倾角就行了。

这样。。。
第一题:扇形的圆心O和两个顶点(圆弧的端点)A,B
需要判断的点为C
可以求出CO 和CB的夹角。看看是不是在AO 与 BO夹角之间(须注意方向)。再判断CO长度是否小于AO..两者都满足,就在扇形内,否则不在。。。。。就是向量的运算。。

第二题:考虑中

1.过点作任意直线(通常是平行于X轴),如果与图形有一个交点,则在图形外面,如果有两个交点,如果两个交点一此点的两侧,则在图形内,如果两个交点在同一侧,则在图形外
2.光珊化后可能处理起来比较容易,不然就必需得到图形的所在方程,分别求出所有在最大小值...

1改变点的形状
2就不大清楚了,高版本的cad上应该会有显示

无效昵称的解答思路是对的,并且这是对任意图形均通用的一总算法(当然,对于凹多边形,不是看一个点还是两个点了,而是看奇数个点还是偶数个点)
不过要纠正个小问题:如果有一个交点,则在扇弧上或顶点上。还存在扇形的边平行于x轴的问题,在计算前先判断一下即可。