level 11
如今能画函数图像的软件多的根本数不过来。平时画函数图像其实计算器就能搞定,根本不用什么MMF。
但还是开个教程,以充实吧的首页。
--使用软件:CF2.5
第一章 1.0版本
第一步 坐标转换
这是最麻烦的一步。所有的编程软件,诸如flashAS、Ruby、CF等,都是将原点坐标设在左上角。这就非常可恶。而且y轴正方向向下。所以第一步,先要转换坐标。
首先制作第一个初级版本,我称之为1.0版本,即坐标固定,分度值固定,原点固定。(稍后为大家带来可以转换原点的版本)
我们把屏幕设成640*480(MF标准尺寸)的
然后,我们把横纵坐标全部除以32,即设为20*15的。
否则,像Sinx这种图像根本看不出来。
现在,假定屏幕是20*15的(1个单位代替32像素),把坐标原点设在(10,10)。
接下来开始最烦的坐标转换了。
我们以函数f(x)=x为例。有变量ActualX ActualY CurrentX CurrentY(前两个表示绝对坐标,后两个表示计算后的数学坐标)
如何找出对应关系呢?我们可以猜测 两者是一次函数关系。根据待定系数法、计算解方程组 CX=AX/32-10
验证一下 当AX=64时 cx=2-10=-8 正确。
下面是Y坐标。同样是一次函数关系。设CY=k*AY+b
代入。0=k*10+b
320=k*0+b
b=320, k=-32
所以CY=-32*AY
+3
20
2016年07月04日 02点07分
2
level 11
我们已经成功转换出了坐标了。接下来我们可以开始绘制简单的图像。
在此之前,还需要推导一个Y坐标逆运算公式。因为我们的基本思路是,由绝对X坐标,推出数学X坐标,从而推出数学Y坐标,反推出绝对Y坐标。毕竟,在MMF里面,显示方位的还是绝对坐标。
既然CY=-32*AY+320
那么-32*CY=AY+320
AY=-32*CY-320
先建立一个2*2的小ACTIVE点。
绘制f(x)=x的图像。
代码:(-...表示条件,:...表示动作)
-Always
:ActualX=ActualX+1
:CurrentX=ActualX/32-10
:CurrentY=CurrentX
:ActualY=-32*CurrentY-320
:Create Point at (0,0)
:Set X Position Point to ActualX
:Set Y Position Point to ActualY
2016年07月04日 02点07分
3
为了显而易见,大家可以事先画出X轴和Y轴
2016年07月04日 02点07分
233错误更正 第四条 改为32*CurrentY+320
2016年07月04日 02点07分
level 11
【互动2】如果你已经考虑出了上述问题,那么请考虑y=x^-2图像靠近x轴时怎么解决? 同理还有secX tanX.....一个个解决是不可能的。
欢迎将你的答案放到下面。精彩的答案可能得到奖励哟!
【提示:可以利用CurrentX对应的Y与CurrentX+1对应的Y的差值关系,实现差距自动填补,从而得到通解!】
2016年07月04日 03点07分
5