草庐IT

triangle

全部标签

java - java 三角区

根据我的家庭作业,我正在尝试构建一个计算三角形面积的应用程序。不太确定哪里出错了,但我输入了三角形的长度,并希望根据Heron的公式显示正确的区域:sqrt(s(s-a)(s-b)(s-c)).我得到的所有输出都是-0.0。这是代码:importjava.lang.Math;publicclassFormula{doublearea;doubles;publicdoublefindArea(doublesideA,doublesideB,doublesideC){s=1/2*(sideA+sideB+sideC);area=Math.sqrt(s*(s-sideA)*(s-sideB)

c++ - 强制 GLUtesselator 只生成 GL_TRIANGLES?

如果我只想使用一种顶点数组格式,则很难呈现我生成的数据。我尝试提供GLU_TESS_EDGE_FLAG_DATA回调,但它使我的程序崩溃。(也试过最后没有“_DATA”,效果相同)。如何让它只生成GL_TRIANGLES? 最佳答案 gluTessCallback(),GLU_TESS_EDGE_FLAG:...ifanon-NULLedgeflagcallbackisprovided...fansandstripsareconvertedtoindependenttriangles.这是我一直在使用的:structTessCont

c++ - 来自 Voronoi 的 Delaunay boost : missing triangle with non-integral point coordinates

遵循这两个资源:BoostbasictutorialSOQuestion我用boost写了一个Delaunay三角剖分。如果点坐标是完整的(我生成了几个随机测试并且我没有观察到错误),它工作正常。但是,如果这些点不是整数,我会发现许多不正确的三角剖分缺少边缘或错误的边缘。例如这张图片是用四舍五入的值构建的并且是正确的(见下面的代码)但是这个图像是用原始值构建的并且是不正确的(见下面的代码)这段代码重现了这两个例子(没有显示)。#includeusingboost::polygon::voronoi_builder;usingboost::polygon::voronoi_diagram

c++ - Make 始终针对目标 "all"运行,即使没有任何更新

我有这些文件测试.cpp点.h点.cpp三角形.h三角形.cpp我想要一个makefile,它允许我通过发出makePoint或分别构建每个类Point和Trianglecode>makeTriangle在需要时(头文件或源文件已更改)。makeall应该编译所有内容并在需要时构建输出程序Test。这是我到目前为止的想法:CXX=g++CXXFLAGS=-std=c++11-Wall-pedanticOBJS=Test.oPoint.oTriangle.oall:$(OBJS)$(CXX)$(CXXFLAGS)$(OBJS)-oTestPoint.o:Point.cppPoint.h$

c++ - C++通过基类指针访问派生类成员

有没有办法让通用代码通过基类指针访问派生类的成员?或者还有其他解决方法吗?假设我有一个Shape类。我有继承它的Square和Triangle类。两者都有自己的私有(private)成员,彼此无关,因此将它们放在基类中毫无意义。现在,如果我需要将类写入文件,但直到我需要将类写入文件时才知道该类是方形还是三角形怎么办?我一直在想办法解决这个问题。最坏的解决方案是将Square和Triangle的数据写入一个文件,为读取和写入添加一个标识符(Triangle或Square),并在加载数据时让一个小型解析器将类放在一起。这将是低效和浪费时间的。我想知道是否有一些技巧或设计模式或任何可以帮助解

C++基于变量向下转换为派生类

假设我有一个基类“Shape”和派生类“Triangle”、“Square”和“Circle”。“Shape”的成员是一个int“shapeType”。如果shapeType==1,则为三角形。如果shapeType==2,那么它就是一个正方形。如果shapeType==3,则为圆形。如果有一种方法可以通过使用shapeType值“动态”向下转换为正确的派生类,我很想知道我只有一个曾经是派生对象的“Shape”对象。我知道我可以写一个硬编码的switch语句,大致如下:Triangle*t;Square*s;Circle*c;switch(shape->shapeType){case1

c++ - C++中的Pascal Triangle递归程序优化

我构建了递归函数来计算Pascal的三角形值。有什么办法可以优化吗?关于帕斯卡三角形的简短提示:C(n,k)=C(n-1,k-1)+C(n-1,k)我的代码是:intPascal(intn,intk){if(k==0)return1;if(n==0)return0;returnPascal(n-1,k-1)+Pascal(n-1,k);}我看到的低效率是它存储了一些值两次。例子:C(6,2)=C(5,1)+C(5,2)C(6,2)=C(4,0)+C(4,1)+C(4,1)+C(4,2)它会调用C(4,1)两次知道如何优化这个功能吗?谢谢 最佳答案

c++ - IBO 比 GL_TRIANGLE_STRIP 还差?

出于学习目的,我决定使用3种方法绘制球体显示列表VoaVbo(GL_TRIANGLE_STRIPE)VaoVbo和Ibo(GL_TRIANGLES)我听说使用ibo可以使程序运行得更快,但这是真的吗?对于100个切片和100个堆栈的球体,第二种方法产生40400个顶点,而第三种方法“仅”产生19802个顶点。通过这样做,我保存了20598个顶点,每个32字节=659136字节。verticesSize=(slices*4)*(stacks+1);IBOverticesSize=(slices*2)*(stacks-1)+2;但是我需要制作索引数组,在这种情况下大小为118800(创建所

c++ - 使用 GL_TRIANGLE_STRIP 或索引 GL_TRIANGLES 绘制动态数量的四边形是否更有效

我正在使用C++开发一个基于sprite的简单2D游戏,该游戏使用OpenGL进行硬件加速渲染,并使用SDL进行窗口管理和用户输入处理。由于它是一款2D游戏,我只需要绘制四边形,但由于Sprite的数量是动态的,我永远不能依赖于四边形的数量是恒定的。因此,我需要在每一帧通过我的VBO重新缓冲所有顶点数据(因为四边形可能比上一帧多或少,因此缓冲区的大小可能不同)。到目前为止,我的原型(prototype)程序会创建一个窗口,并允许用户使用向上和向下箭头键在对角线行中添加和删除四边形。现在我画的四边形是简单的、没有纹理的白色方block。这是我正在使用的代码(在OSX10.6.8和Ubun

c++ - 子三角形中最大元素的总和

我试过了lastquestion来自今年的CCC2019S5。问题陈述:在平行宇宙中,计算机科学中最重要的数据结构是三角形。大小为M的三角形由M行组成,第i行包含i个元素。此外,这些行必须排列成等边三角形的形状。也就是说,每一行都以通过三角形中间的垂直对称线为中心。例如,下图显示了一个大小为4的三角形:一个三角形包含子三角形。例如,上面的三角形包含十个大小为1的子三角形,六个大小为2的子三角形(其中两个是包含(3,1,2)的三角形和包含(4,6,1)的三角形),三个大小为3的子三角形(其中一个包含(2,2,1,1,4,2))。请注意,每个三角形都是其自身的子三角形。给定一个大小为N的三