回 帖 发 新 帖 刷新版面

主题:打印正弦图形

clear
k=1
for i=1 to 360 step 10
@ k,int(sin(i/180*3.14)*50)+50 say "*"
k=k+1
next
return
高手帮忙解释一下原理,特别是这句int(sin(i/180*3.14)*50)+50这是得到了一个怎样的坐标?

回复列表 (共1个回复)

沙发

y = sin(x), 0<x<2*pi, -1<y<1
程序打印的正弦曲线是一个直立的反"S"形,
x坐标为行增加的方向,y坐标为列增加的方向,
程序拟用36个点显示正弦曲线,这些点打印在36行上,每行一个点(用"*"号表示),
我们知道正弦曲线从坐标原点开始,y的第一个值为0,当x=pi/2时为1,x=3*pi/2时为-1,
程序把y值"1"分为50等分,所以以y值确定的点位在列上跨度为100,所以,要把y=0时的位置
定在第50列的位置.
所以有int(sin(i/180*3.14)*50)+50式
其中int()函数为取整作用,因为列不可以有小数位,
(i/180*3.14)中i为角度值,该式将其转换为弧度值
*50的作用是将其sin值(在-1和+1之间)放大50倍,
+50表示起点从第50列开始.

我来回复

您尚未登录,请登录后再回复。点此登录或注册