Tag: 多边形

OpenGL GL_POLYGON凹面多边形不会着色

当我尝试在OpenGL中使用Polygon时遇到问题。 我不知道如何解释这个,但我的所有顶点都与开头的顶点相连。 当我尝试着色对象时会发生问题。 我想绘制一个简单的对象。 void TOP (float x1, float y1, float x2, float h,float n) { float r = x2-x1; if(n==1){glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);} // FOR FILL OR NO FILL OBJECT glBegin(GL_POLYGON); glVertex2f(x1,y1); glVertex2f(x2,y1); glVertex2f(x2,y1+h/7); y1=y1+h/7; glVertex2f(x2-r/5,y1+h/7); x2=x2-r/5; y1=y1+h/7; glVertex2f(x2,y1+2*h/7); y1=y1+2*h/7; glVertex2f(x2+r/5,y1+h/7); y1=y1+h/7; x2=x2+r/5; glVertex2f(x2,y1+2*h/7); cout<<y1<<endl; y1=y1+2*h/7; glVertex2f(x2-r/5,y1); x2=x2-r/5; glVertex2f(x2,y1-h/7); y1=y1-h/7; glVertex2f(x2-r/5,y1);x2=x2-r/5; glVertex2f(x2,y1+h/7); y1=y1+h/7; glVertex2f(x2-r/5,y1);x2=x2-r/5; glVertex2f(x2,y1-h/7); y1=y1-h/7; […]

将多边形转换为三角形

为了在OpenGl中创建VBO,我需要将多边形转换为三角形。 是否有一个脚本/代码的例子可以描述这个? 对于凸多边形和凹多边形,我需要一些强大的东西。

如何检查点(x,y)是否在笛卡尔坐标系中的多边形内?

这个问题在这里已有答案: 指向Polygon aka命中测试 C#指向多边形 给定在笛卡尔坐标系中用N线方程组成的随机多边形,是否有任何标准公式用于检查点(x,y)的隶属度? 简单的解决方案是获取所有线公式,并检查点X是否在该线下方,在该线上方以及在另一条线的右侧,等等。但这可能是单调乏味的。 我应该注意,多边形可以是任何形状,具有任意数量的边,并且可以是凹的或凸的。 为方便起见,我已经添加了这些实用function: float slope(CGPoint p1, CGPoint p2) { return (p2.y – p1.y) / (p2.x – p1.x); } CGPoint pointOnLineWithY(CGPoint p, float m, float y) { float x = (y – py)/m + px; return CGPointMake(x,y); } CGPoint pointOnLineWithX(CGPoint p, float m, float x) { float y = m*(x – […]

如何强制openGL绘制非凸填充多边形

多边形以凸起形状绘制似乎是标准。 请参阅stackoverflow.com/questions/15556929/open-gl-polygon但是,如果我选择填充它,则不适合我。 如何在保持我定义的形状的同时填充多边形? void drawFloor(){ // White glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); // GL_LINE works the way I want it too //glDisable(GL_POLYGON_SMOOTH); // has no effect 🙁 glBegin(GL_POLYGON); glColor3f(1.0, 1.0, 1.0); glVertex3f(0, 0, 0); //0 glVertex3f(2*boxSize, 0, 0); //1 glVertex3f(2 * boxSize, -boxSize, 0); //2 glVertex3f(5 * boxSize, -boxSize, 0); //3 glVertex3f(5 * boxSize, 4 * boxSize, 0); […]

多边形的交点

给出了两个多边形。 如何确定一个多边形是在另一个多边形的内部,外部还是相交? 多边形可以是凹面或凸面。