橘子钟表 铜牌收录

这个橘子钟表程序主要分成三个部分:画表盘、画表针、显示当前时间。画表盘部分运用到了三次贝塞尔曲线、HSL 颜色模型以及字符串格式化命令,其中三次贝塞尔曲线确定点的坐标比较复杂。画表针主要涉及到计算各表针运动的弧度。显示当前时间所用字体为等宽字体,其作用在于居中后效果更均匀。

3D 渐去文字特效 银牌收录

实现了文字从屏幕底部逐渐向上滚动的效果。利用压缩图像和改变亮度的方式,使其看起来像是 3D 的文字在屏幕上滚动,看起来很酷。

素数螺旋线 银牌收录

素数螺旋线,是对阿基米德螺旋线的改造,他只绘制整数点,并排除了所有合数点。 倍数螺旋线,是对这张完整点图的改造。

冰墩墩 铜牌收录

将冰墩墩简化成多个椭圆,并且按照不同部位,分步用函数分别绘制,冰墩墩的具体细节没有去刻画。适合初学者借鉴学习与加以细化,例如可以细化一下冰墩墩的腿部和手部细节,将它肚子上的文字改成冬奥 LOGO,改变一下眼睛的颜色等等,还可以画一只雪容融。

阿基米德螺旋线 银牌收录

最初是想用阿基米德螺旋线实现可视化 π,于是学习了泰勒展开计算 π 的过程,同理举一反三实现了计算 e 的过程,学习了画阿基米德螺旋线。后来又实现了一种“走路的直线”,来可视化有理数。本程序糅合了所有功能,实现用螺旋线和行走线,来可视化无理数 π,无理数 e 和有理数。

施泰纳球极平面射影 银牌收录

同心圆套内切圆的实现,也是施泰纳球极平面射影原理的可视化实践。参考视频用了立体投影一词。我在视频中理解了原理,于是自己推公式才能还原出来。

这是一个表白神器 铜牌收录

这是一个表白神器,雪花飘落划过的痕迹,会渐渐显示出来隐藏的文字。文字可以自己替换上图片识别。程序默认是识别 640×480 尺寸,可以自己调整。

爱的心脏线 铜牌收录

大一的时候听说了 r = a(1 - cosθ) 这个方程,当时想试着自己推出它的直角坐标系方程,可惜数学不好解不出来,现在感觉编程能力变强了,就试着用程序画出这个方程的图像。这个方程本质上就是一个圆绕着另一个圆转一周时动圆上某个定点的轨迹,看起来像心脏线,而且有数学家笛卡尔与爱徒的故事做背景,这个方程还染上了一丝浪漫的气氛。现在成功用代码把这个爱心方程画出来了。

令小也画作绘制 金牌收录

这是一张完全用代码画出来的卡通人物。我用的是令小也的作品,通过观察寻找绘制的规律,然后分析绘制的层次。在用程序绘制比较复杂的画作时,一定要耐心,将画作的层次分析清楚,可以大大节省很多代码量。一般都是将复杂的图形用简单的图形进行拼接,覆盖等方式进行绘制。

贝塞尔曲线 银牌收录

动态演示贝塞尔曲线的绘制过程,支持任意点数、任意阶次。点击鼠标右键,在鼠标位置将创建新的点。按住鼠标左键拖动控制点。空格键屏幕将清空。

星罗万象时钟罗盘 铜牌收录

编写思路

该程序的难点在于字符串的书写角度,理解了这个就已经理解了这个程序的核心内容,需要注意的地方是这个程序的每一圈代表一个 for 循环,我开始写的时候认为一个 for 循环嵌套一个 for 循环,但是后面我发现 for 循环嵌套的太多,就会导致程序运行的速度变慢,为了提高程序的速度,我将所有的 for 循环分开写,不用循环嵌套。然后用一个 while 循环来控制主循环。还有一个问题,程序中我没有用 Sleep 函数,直接使用了获取系统时间的函数,通过慢羊羊的指导,后续又加以修正,让钟表产生旋转的效果。在这里要感谢慢羊羊,感谢他对我编写的每一个程序进行指导,并给我一个展示的平台,让我对编程产生了浓厚的兴趣,由衷的感谢他。

心得体会

****写程序总是兴趣使然,实现自己的想法所带来的成就感还是挺不错。如果发现一个自己想用程序实现的东西,总是心中念念不忘,然后悄悄酝酿着,积累着,当有足够的能力将所看所学所想的组合起来时,那可能就是创新吧。多想,多看,多敲代码。这个程序创新之处就是旋转。就比如秒的那圈旋转,为了达到动态旋转的效果,并

...

四杆机构-机械原理 银牌收录

四杆机构模拟。

四杆机构介绍:维基百科、哈工大机械原理课件.

说明

AB 作为主动件,AD 为机架。

根据传入的杆长自动绘制出相应的四杆机构。

如下图,程序绘制了曲柄摇杆、双摇杆、摇杆曲柄、双摇杆机构。

单击鼠标右键循环隐藏圆圈、C2 点、C1 点。

/////////////////////////////////////////////////////////////
// 程序名称:四杆机构-机械原理
// 编译环境:Visual Studio 2019 (v142),EasyX_20210730
// 作  者:luyiran <872289455@qq.com>
// 发布日期:2021-8-11
//
#pragma warning(disable:4244)	// 程序会用到浮点数截断特性
#include <cstdio>				// printf
#
...