这个学期,我在我的大学学习了计算机图形学课程.目前,我们开始研究一些更先进的东西,如高度图,平均法线,细分等.
我来自面向对象的背景,所以我试图将我们所做的一切都放到可重用的类中.我在创建相机类方面取得了很大的成功,因为它主要取决于对gluLookAt()的一次调用,它几乎独立于OpenGL状态机的其余部分.
但是,我在其他方面遇到了一些麻烦.使用对象来表示原语并没有真正成功.这是因为实际的渲染调用依赖于很多外部事物,比如当前绑定的纹理等.如果您突然想要从特定类的表面法线更改为顶点法线,则会导致严重的问题.
我开始怀疑OO原则是否适用于OpenGL编码.至少,我认为我应该让我的课程不那么精细.
什么是堆栈溢出社区对此的看法?您的OpenGL编码最佳实践是什么?
可能不太实用,但仍然很有趣.
有一些关于矩阵乘法的抽象问题我已经快速实现了一个int的矩阵,然后测试了我的假设.
在这里我注意到只是int矩阵不好,如果我偶尔想用十进制或双精度.当然,我可以尝试将所有人都加倍,但这不方便.
继续假设我们可以有一堆对象,我们可以添加和繁殖 - 为什么不在我的矩阵中使用它们?
所以,在考虑它将是一个Matrix类之后,我现在面临无法使用泛型T,我需要它来支持一些可以添加和相乘的接口.
问题是我可以覆盖我的类中的运算符,但我不能引入一个支持运算符的接口.我有一个内置类型的运算符,但仍然没有接口.
考虑到你不想复制工人阶级的身体,你会在这种情况下做什么?包装和隐式铸造对我没什么帮助,我对一个漂亮的解决方案很感兴趣.
谢谢.
我想知道Rails应用程序的最佳部署目录是什么?一些开发人员使用诸如的目录/u/apps/#{appname}.使用而不是或其他操作系统默认目录时是否有任何优势?/u/apps/#{appname}/var/www/#{appname}
显然,我想选择具有最佳安全属性和最小摩擦力的目录来设置服务器环境.
你如何部署你的Rails应用程序?你为什么使用特定的目录?你觉得它真的很重要吗?
我正在利用Scala在业余时间学习函数式编程,我有一个闲置的新手问题.
在做像Haar小波变换这样的事情时,我可以看到具有不可变对象的优雅 - 即当数据本身由对象表示时不会改变.
但我看到一个博客,其中有人以小游戏为例证明了不变性.如果一个生物对象收到了伤害,它没有改变它的状态 - 它返回了一个新的生物对象,其中包含新的生命值和一个新的"aggro to X"标志.但是,如果我们设计像MMORPG这样的东西,魔兽世界说.战场上的一百名玩家......可能有成千上万的攻击和缓冲/减益效果以不同的方式影响他们.是否仍然可以使用完全不可变的对象来设计系统?对我来说,似乎每个'滴答'会有一大群新的实例.为了获得当前有效的对象实例,所有客户端都会不断地经历某种中心"游戏世界"对象,或者?
函数式编程是否适用于此,或者这是"最佳工作的最佳工具,可能在这里不可变"的情况?
我有一个WinForms应用程序,其中一个视图,用户从ComboBox中的预定义时间跨度列表中选择一个时间跨度,其DropDownStyle属性设置为DropDownList.
现在,要求已经改变.用户将需要能够从时间跨度列表中进行多项选择.
是否可以在ComboBox中进行多项选择?当ComboBox折叠时,您如何呈现这些选择?不要忘记可用性方面.
是否存在可以满足用户需求的其他控件(内置或第三方,最好是某种类型的下拉)?
更新:误导性标题......
我有一个生成长报告的Web应用程序,我需要打印它.如果我只打印页面,它将在物理页面的末尾打破.如何计算网页中断的位置,以便在打印时页面符号与物理页面对齐?
当我与nhibernate有很多to.many关系并让nhibernate生成我的db模式时,它会添加一个包含相关实体主键的aditional表.是否可以向此添加其他字段并访问它们而不必手动使用sql麻烦?
我觉得很烦人,我无法清除列表.在这个例子中:
a = []
a.append(1)
a.append(2)
a = []
Run Code Online (Sandbox Code Playgroud)
第二次将a初始化为空白列表时,它会创建一个列表的新实例,该列表位于内存中的不同位置,因此我无法使用它来引用第一个,更不用说它效率低下了.
我可以看到保留相同指针的唯一方法是执行以下操作:
for i in range(len(a)):
a.pop()
Run Code Online (Sandbox Code Playgroud)
这看起来很啰嗦,有没有更好的方法来解决这个问题?
我一直在寻找.net(c#)的日志框架,并决定在阅读stackoverflow上的一些问题/答案线程后给log4net一个机会.我看到人们一遍又一遍地提到他们使用log4net的包装类,我很想知道它会是什么样子.
我将我的代码拆分为不同的项目(数据访问/业务/ webservice/..).log4net包装器类怎么样?包装类是否需要包含在所有项目中?我应该将它作为一个单独的项目一起构建吗?
包装器应该是单件类吗?
是否有Web上可用的System.IO.File.ReadAllxxx/WriteAllxxx方法与StreamReader/StremWriter类的性能比较.您认为在.net 3.0中读取/写入文本文件的最佳方式(从性能角度来看)是什么?
当我检查System.IO.File类的MSDN页面时,在示例代码中MS正在使用StreamReader/StreamWriter进行文件操作.是否有任何特定的原因可以避免使用File.ReadAllxxx/WriteAllxxx方法,即使它们看起来更容易理解?
.net ×4
c# ×3
oop ×2
.net-3.0 ×1
c++ ×1
controls ×1
deployment ×1
file-io ×1
generics ×1
immutability ×1
linux ×1
list ×1
log4net ×1
mongrel ×1
nhibernate ×1
opengl ×1
page-break ×1
performance ×1
printing ×1
python ×1
refactoring ×1
ruby ×1
winforms ×1