在那里,我正在用opengl绘制一个轮廓(in x
,z
plan),然后我想知道一个点是在轮廓内部还是外部。所以我得到该轮廓的xmin
, xmax
, ymin
etymax
值(现在只是一个圆圈)然后我添加-delta
到每个最小值和+delta
每个最大值。
然后我这样做:
for(GLfloat x=getXmin()-getDelta();x<=getXmax()+getDelta();x+=getDelta())
for(GLfloat y=getYmin()-getDelta();y<=getYmax()+getDelta();y+=getDelta()){
...
}
我想得到这个:
但我得到了这个:
我不想靠近轮廓,因为我担心有一天轮廓会如此接近,而不是在我做一些微积分时会出错。由于问题来自浮动值。为了解决这个问题,我可以做到
for(GLfloat x=getXmin()-getDelta();x<=getXmax()+2.*getDelta();x+=getDelta())
for(GLfloat y=getYmin()-getDelta();y<=getYmax()+2.*getDelta();y+=getDelta()){
...
}
(这就是我得到第一张照片的方式)
所以,我想知道这是否是让最大值更大的好方法......老实说,当我编写这段代码时,我认为添加+delta
将确保不会靠近轮廓
信息:
getXmax()
返回值1.2
,
getDelta()
返回值0.1
getXmin()
返回值-0.699135