绘制函数图像的问题

TroubleShotting 2004-08-04 09:42:59
用户输入一个函数表达式,程序选择定义域内的x,并依次(用for语句实现)根据这个x求出y,最后根据(x,y)在屏幕上绘图.
但现在遇到两个问题:
1.会遇到这种情况:x1=10,y1=10;X2=11,y2=50.(斜率过大)
在这种情况下,(x1,y1)(x2,y2)两点间会出现断点。
2.绘制椭圆,双曲线等非映射函数时,有部分图像绘制不出来(x^2+y^2=1,只绘制x=(1-y^2)^0.5)

这些问题应该怎么解决呢
...全文
54 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zzwu 2004-08-04
1.你可以把画图区的水平范围拉宽,比如放大10倍,然后在中间进行插值,点的跳跃就会减少.

例如[10,10]-[11,50]水平范围拉宽10倍后,变成[100,10],[110,50],在100-110间进行插值:

[100,10]-[101,14]-[102,18]-[103,22]-[104,26]-[105,30]-
-[106,34]-[107,38]-[108,42]-[109,46]-[110,50]

这样点就连续一些了.

2.你应该画两段曲线:

x = +(1-y^2)^0.5), 上半平面的曲线
x = -(1-y^2)^0.5), 下半平面的曲线

你也可以改为参数方程来画:
x=sin(t), y=cos(t), t =[0,2*Pi]


回复
BlueSky2008 2004-08-04
1,只要根据两点画线,就行了。
回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-08-04 09:42
社区公告
暂无公告