我想编程比我已经知道的基本2D内容更复杂的图形2D游戏.我不想做3D编程.只是更复杂的2D东西.在我学到很多东西之前,我放弃了高中学习,所以我带走了足够的代数知识来平衡我的支票簿并做一些简单的2D笛卡尔编程.
对于一个注意力有限的人(对于我非常感兴趣的主题每个20分钟)来说,是否有任何好的资源可以逐渐学习,如何在编程中学习数学更有用的东西?
你需要胜任三角学:维基百科和Mathworld
即使你不想做3D编程,2D游戏也使用矢量和矩阵.(来自线性代数)
线性代数资源:Wikepedia和 Mathworld
在Trig编程中节省大量精力的一点是实现了对atan2()函数的需求,而不是atan()函数.在确定两点之间的方向时,这很重要.
能够在各种坐标系之间移动是一大优点.这将带来经验.绊倒人们的两件常见事情是:
a)大多数屏幕系统将原点(0,0)放在左上角,正x轴向右延伸,正y轴向下延伸.标准笛卡尔坐标假设左下角的象限1(其中x和y总是正或零)的原点.这需要程序员在某个阶段"翻转"y方向.
b)典型地理位置为0度为北,正度为顺时针方向.所有Trig功能都以0度为东,逆度顺时针扫描正度.
最后,即使我们倾向于用度来思考,真正的库也会使用弧度.最佳实践是将角度存储为弧度(在"数学"方向而不是"地理位置")并在显示调试信息时转换内容.
我目前正在阅读David M. Bourg的" 物理游戏开发者 ".到目前为止,我推荐它.
它提供了物理背后的数学概念,可以轻松应用于2D领域,为您的游戏增添一点趣味.