0

在那里,我正在用opengl绘制一个轮廓(in xzplan),然后我想知道一个点是在轮廓内部还是外部。所以我得到该轮廓的xmin, xmax, yminetymax值(现在只是一个圆圈)然后我添加-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

4

0 回答 0