Tag: 几何

是否有在数字屏幕上绘制2d对象的一般方法

在某些情况下,我想通过定义一组像素来绘制2D对象,以更改为表示形状的颜色。 例如,如果我想绘制一个正方形,我会定义左上角说(0,0),右下角说(10,10)。 然后我用y值0-10改变所有像素x值0-10的颜色。 不幸的是,我没有一个坚固的分步方法来完成这个,并且由于它们有多简单,我只能绘制正方形/矩形。 有没有可以描述的方法,或者描述如何执行此操作的资源,您可以指向我,这将帮助我绘制除了正方形和矩形之外的形状? 伪代码,或者在C或java中的这个基本实现会非常有帮助。 此外,只是详细说明如何实现这一点也会有所帮助。

如何在opengl中定位二十面体的面?

我从链接http://www.glprogramming.com/red/chapter02.html看到了以下代码来制作二十面体 #define X .525731112119133606 #define Z .850650808352039932 static GLfloat vdata[12][3] = { {-X, 0.0, Z}, {X, 0.0, Z}, {-X, 0.0, -Z}, {X, 0.0, -Z}, {0.0, Z, X}, {0.0, Z, -X}, {0.0, -Z, X}, {0.0, -Z, -X}, {Z, X, 0.0}, {-Z, X, 0.0}, {Z, -X, 0.0}, {-Z, -X, 0.0} }; static GLuint tindices[20][3] = { {0,4,1}, […]

不同的物体相撞

我只想检查两个物体是否发生碰撞,在这种情况下它是一个圆圈而第二个是方形。 我正在使用的代码完美无缺,但它只检查方块的右侧和下侧/侧面是否发生碰撞,请帮助我纠正它,这样我就可以检查所有侧面的碰撞。 问题是我只想检查广场的所有边是否与圆相撞,但它只检查两侧的function如下: bool Collision(int circleX, int circleY, int radius, int squareX, int squareY, int width, int height) { double distance = 0; //get circle of square double center_square_x = (double)(squareX + squareX + width)/2; double center_square_y = (double)(squareY + squareY + height)/2; //check for whether circle fully located inside square if (circleX >= squareX […]

用于确定给定数量N是否可以成为具有所有3个整数边的直角三角形的斜边的算法

假设您给出了一个直角三角形的斜边,那么如何确定给定的斜边是否有两个可能的小边。 例如,你将斜边视为5.然后你必须确定给定的直角三角形是否有较小的整数边。答案是yes因为我们可以将较小的边用作3和4,因此得到3-4- 5直角三角形。 同样,对于斜边7,我们可以没有这样的直角三角形。 换句话说,我们必须找出给定数字N是否可以作为右三角形的斜边,所有三边都是整数。 我阅读了关于毕达哥拉斯三重奏的整篇文章,但仍然没有成功。我很困惑要检查哪些条件。请帮忙。

n阶Bezier曲线?

我已经设法实现了二次和三次贝塞尔曲线。因为我们有一个公式,所以非常简单。 现在我想用泛化表示一个n阶贝塞尔曲线: 哪里 和 我正在使用位图库来渲染输出,所以这是我的代码: // binomialCoef(n, k) = (factorial(n) / (factorial(k) * factorial(n- k))) unsigned int binomialCoef(unsigned int n, const unsigned int k) { unsigned int r = 1; if(k > n) return 0; for(unsigned int d = 1; d <= k; d++) { r *= n–; r /= d; } return r; } […]

使用C / C ++的球体上的点,线和多边形

我的应用是表示地球上的形状(使用球体就足够了)表面。 那些可以是点,线和多边形。 应使用度数或弧度(就像地理坐标一样)来定义坐标。 球体表面上两点之间的线段应位于其大圆上 。 多边形应包含这些线的集合。 此外,我想执行Set – Basic操作,如交集,联合,差异,补充所提到的形状。 这些操作只需要输出点集合。 我试图通过在球体上嵌入的Nef多边形上使用CGAL的3D球面几何内核和2D布尔运算来解决这个问题 。 实际上,我已经遇到了在球体上划线的问题。 此外,CGAL在欧几里德空间中工作,它仍然需要几何操作,以便与放置在球体上的大圆一起工作。 我的问题是,如果你可以帮助我实现CGAL中提到的function,或者你可以推荐另一个C / C ++库来实现这一点。 非常感谢你!

(rho / theta)参数化中定义的两条线的交点

已经创建了Hough变换的c ++实现来检测图像中的线条。 找到的线条用rho,theta表示,如维基百科所述: “参数r表示直线与原点之间的距离,而θ是从原点到该最近点的矢量角度” 如何在使用r,θ描述的两条线的x,y空间中找到交点? 这里参考我目前用于转换进出霍夫空间的函数: //get ‘r’ (length of a line from pole (corner, 0,0, distance from center) perpendicular to a line intersecting point x,y at a given angle) given the point and the angle (in radians) inline float point2Hough(int x, int y, float theta) { return((((float)x)*cosf(theta))+((float)y)*sinf(theta)); } //get point y for a line […]

找出矩形是否在另一个矩形内

所以我有两个矩形,用户必须输入左下角(x1,y1,但y1总是0)和右上角(x2,y2),我必须找出其中一个是否完全在里面另一个(或者它们完全一样)。 并且它会变得有点困难,因为我实际上必须制作程序,以便用户可以决定他们想要创建多少个矩形,但起初我很乐意知道如何检查2个矩形的情况。

找到二维三角形的中心

(是的,不幸的是,这是一个家庭作业问题) 我已经获得了一个带有x和y坐标的二维三角形结构,一个旋转变量,等等。 从那些x和y坐标创建的点,我应该在点周围绘制一个三角形并使用旋转变量适当地旋转它。 我熟悉使用GL_TRIANGLES在OpenGl中绘制三角形。 我的问题是以某种方式提取三角形的中间并在其周围绘制顶点。 我希望我已经措辞得当,因为我有点困惑。 谢谢。 编辑:是的,我要找的是质心。

将多边形转换为三角形

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