- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑:这是一个库错误。我 reported它到 HOpenGL 邮件列表。
我使用 9 点矩形方法将圆/椭圆表示为 NURBS。
点是p1, p2, ..., p9
, p9 = p1
.它们如图所示:
y2 | p2 p3 p4
y1 | p1 p5
y0 | p8 p7 p6
-------------
| x0 x1 x2
x1 = (x0 + x2) / 2
y1 = (y0 + y2) / 2
p1 = (x0, y1), p2 = (x0, y2)
等等。
1
对于中间点 (p1,p3,p5,p7
) sqrt(0.5)
对于角点 ( p2,p4,p6,p8
) (x,y)
带重量 w
变成 Vertex4 (w*x) (w*y) 0 w
Vertex4 x y 0 w
Lines.hs
的代码来自 GLUT 的例子:
import System.Exit ( exitWith, ExitCode(ExitSuccess) )
import Graphics.UI.GLUT
import Foreign.Marshal.Array
import Graphics.Rendering.OpenGL.GLU.NURBS
myInit :: IO ()
myInit = do
clearColor $= Color4 0 0 0 0
display :: DisplayCallback
display = do
clear [ ColorBuffer, DepthBuffer ]
color (Color3 1.0 1.0 1.0 :: Color3 GLfloat)
withNURBSObj () $ \nurbsObj -> do
nurbsBeginEndCurve nurbsObj $
withArrayLen knots $ \nKnots knots ->
withArray controls $ \controls -> do
nurbsCurve nurbsObj (fromIntegral nKnots) knots stride controls order
flush
where
order = 3
stride = 4 -- number of floats in Vertex
controls = zipWith mkControl points weights
mkControl (x, y) w = Vertex4 (x*w) (y*w) 0 w
-- mkControl (x, y) w = Vertex4 x y 0 w
knots = [0, 0, 0, 0.25, 0.25, 0.5, 0.5, 0.75, 0.75, 1, 1, 1]
weights = let a = sqrt 0.5 in [1, a, 1, a, 1, a, 1, a, 1]
points = [
(x0, y1), (x0, y2), (x1, y2),
(x2, y2), (x2, y1), (x2, y0),
(x1, y0), (x0, y0), (x0, y1)
]
y1 = (y0 + y2) / 2
x1 = (x0 + x2) / 2
(x0, x2) = (50, 450)
(y0, y2) = (x0, x2)
reshape :: ReshapeCallback
reshape size@(Size w h) = do
viewport $= (Position 0 0, size)
matrixMode $= Projection
loadIdentity
ortho2D 0 (fromIntegral w) 0 (fromIntegral h)
-- the following line is not in the original example, but it's good style...
matrixMode $= Modelview 0
keyboard :: KeyboardMouseCallback
keyboard (Char '\27') Down _ _ = exitWith ExitSuccess
keyboard _ _ _ _ = return ()
-- Request double buffer display mode.
-- Register mouse input callback functions
main :: IO ()
main = do
(progName, _args) <- getArgsAndInitialize
initialDisplayMode $= [ SingleBuffered, RGBMode ]
initialWindowSize $= Size 500 500
initialWindowPosition $= Position 100 100
createWindow "Test"
myInit
displayCallback $= display
reshapeCallback $= Just reshape
keyboardMouseCallback $= Just keyboard
mainLoop
最佳答案
好的,在我的第一个答案中,我暂时失去了理智。无论如何,您的代码中根本没有错误:如果我编译并执行给定的代码,我会得到:
我怀疑,您的 Haskell 安装中的某些内容已损坏。
因评论而编辑:
现在这很奇怪……
我使用的是Gentoo,所以我的系统通过Portage 系统提供Haskell OpenGL 模块。因此我得到了这个:
loki ~ # for p in OpenGL OpenGLRaw GLURaw; do ghc-pkg latest $p; done
OpenGL-2.2.1.1
ghc-pkg: cannot find package OpenGLRaw
ghc-pkg: cannot find package GLURaw
datenwolf@loki ~ $ for p in OpenGL OpenGLRaw GLURaw; do ghc-pkg latest $p; done
OpenGL-2.4.0.1
OpenGLRaw-1.1.0.1
GLURaw-1.1.0.0
关于opengl - GLU NURBS 渲染错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7798662/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭去年。 Im
我无法解读形状 NURBSTo 条目(用于样条曲线 - 弯曲边缘)中 NURBS 公式的各个参数。 MS Visio 文档帮助不大。 参数的数量是可变的,具体取决于曲线的复杂程度。一个更简单的例子是:
我一直在使用 NURBS 实现进行参数化设计 geomdl在 python 。问题是它是空心的,不能用 cgal 或 3dprinted 处理。我正在寻找一种通过关闭顶部和底部使其防水的方法。我已经尝
编辑:这是一个库错误。我 reported它到 HOpenGL 邮件列表。 我使用 9 点矩形方法将圆/椭圆表示为 NURBS。 点是p1, p2, ..., p9 , p9 = p1 .它们如图所示
我正在使用gluNurbsCurve绘制一些带有一些控制点的曲线。我已经按照红皮书中描述的方式正确运行了基本设置,并且正在尝试对其进行扩展。 该示例如下所示: float knots[8] = {0,
我有一个 NURBS surface它有 4 个弯曲的边缘。 (我有曲线的 4 个贝塞尔点) 我想用轴上的切片平面(不如 3DSMAX 先进!)对 NURBS 曲面进行切片,并计算切片平面和 NURB
我正在实现 NURBS 曲面。我想要的只是在每次鼠标单击时 Y 轴上都有递减,所以它看起来像是有太阳或其他行星的重量。 #include #include int PI = 3.145; int
我对 jogl 中的 nurbs 做了一些研究,但不幸的是没有得到合适的结果,我怀疑 jogl不支持nurbs?如果 jogl 支持,谁能指导我查看示例或文献? 最佳答案 您可以找到有关 GLU(包含
我必须编写一个 C++ 程序,根据未组织的点列表,计算这些点所在的近似曲面并生成相应的 NURBS。我已经看过 OpenNurbs,但没有这方面的功能,而 libNURBS 但包含的功能被标记为“研究
过去一周我一直面临这个问题。对于我当前的项目,我需要绘制 NURBS 曲线,该项目已经使用了 OpenNURBS,但我无法弄清楚如何使用它。 我的问题是,如何从几个控制点得到曲线点? 我做了很多搜索,
我正在学习 OpenGL,我想要一个中间有轻微隆起的表面。我目前正在使用这段代码,但我不确定如何调整 ctrl 点以使其成为我想要的方式。它目前像 我希望它是这样的: 我不完全确定我应该使用哪些控制点
您可以使用 DirectX 11 在 GPU 上渲染 NURBS 吗?我一直在阅读有关渲染此类表面的当前趋势,但在 NURBS 上没有看到任何内容。 我找到了一些相关的引用资料,但没有什么可靠的……比
你能推荐一些库来操作 Delphi 可用的样条线吗?我做了一些搜索,但我发现的所有内容都有 C/C++/Python 绑定(bind)。我需要的功能是: 在 2D 中操作样条线:旋转、平移、镜像、缩放
我有一条 Nurbs 曲线(控制点、结 vector 、权重和 3 或 4 度)。我可以使用参数 t [0, 1] 沿曲线采样来计算长度。计算沿曲线的距离之和可得出曲线的近似长度。 有没有更好的方法来
给定一个包含一个 BSpline/NURBS 曲面的 Blender 文件(例如,Add -> Surface -> NURBS Sphere),我有兴趣导出它的控制多边形(定义它的 3D 点) )
我需要在 OpenGL 中绘制 NURBS 曲线的控制点和节点。控制点没有问题,因为它们是由它们的坐标定义的。但是,我在打结方面遇到了更多麻烦。 我有一个由 gluNurbsCurve 获取的结数组函
我需要创建一个具有两个端点和“n”个控制点的样条。 据我所知,贝塞尔曲线只允许一个控制点,而贝塞尔样条允许两个控制点。但是,我需要能够添加我认为合适的任意数量的控制点,而不限于一两个。 这是我想要实现
我需要一些帮助来在 webGL 中渲染 NURBS 曲面。几天前,我们的教授让我们用 NURBS 绘制一面旗帜并为其制作动画。我们必须使用 webGL(不能使用 trhee.js...)。我不知道如何
我正在使用 OpenGL 创建一个 nurbs 曲面 (gluNurbSurface(...)),我想知道如何将控制点(黑点)的正常值作为红点到达曲面市场。有了这些信息,我就能计算出它们之间的距离。
在 OpenGL 中,可以使用 evaluators 绘制 NURB 。但评估者似乎是 removed遵循 OpenGL ES 规范,使其轻量级。那么,如何使用 OpenGL ES API 绘制 NU
我是一名优秀的程序员,十分优秀!