前段时间博主在b站看到一个有趣的视频:
Bilibili : 【为何编程需要数学(・∀・)】
并且视频简介中将贴了原博客,这是一篇发布于2011年,主要讲解“甜甜圈”数学模型以及代码是如何工作的博客:Blog : Donut math: how donut.c works - Andy Sloane
维基百科传送门:栅格化
具体原理以及源码实现效果读者可以移步到那位大佬的博客中以及维基百科中仔细阅读,博主就不在此赘述了)
博主在看完视频后,很是匪夷所思,秉持“纸上得来终觉浅,绝知此事要躬行”的理念,想自己实现一个玩一下,但在研究过程中,发现原博客以及Github上其他大佬的代码写的都比较“过程化”,数学表达式基本都是最简式,变量名称可读性较差,看起来很是费劲=_=||。(也有可能只是因为博主太菜了)。最终,博主决定用C#写一个可读性比较好的(不考虑性能哈(逃)),方便像我这样的图形学小白在学习的过程中能更轻松一些(~ ̄▽ ̄)~
首先展示实现效果(能跑就行):
虽然肯定比不上原博客的实现效果,但总体效果还算说得过去(迫真)...并且保证的源码一定程度上的可读性(对小白友好))>︿<)~.
Github仓库地址:
https://github.com/ZhouLGO/ConsoleDrawer
下面笔者写的一个简单的前端控制台页面链接,可以通过实时参数调整体验图形学的乐趣: