关于函数图像绘制

数字蛋糕 2000-10-15 06:27:00
我想请问两个在品目上绘制函数图像的问题:
1、如果在某个区间内存在尖峰,而且尖峰所占的区间非常小,以至于在取样绘图时无法测知,怎么办?
2、显示高频图像时,当函数的振荡周期小于像素所能表示的精度,应该采取怎样的取样策略。如果打算只画包络的话,应该怎样对表达式进行高振荡检测和包络提取呢。
实际上这两个也是有限字长效应的问题,大家多多帮忙。
...全文
445 19 打赏 收藏 举报
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
数字蛋糕 2001-11-06
这个问题真蠢,结了算了。
  • 打赏
  • 举报
回复
axial 2001-10-28
这应该是信号中的东西,我建议你先用matlab去试一试,看看人家是怎么画的。
我觉得象函数画图这种东西我们个人应该没有多大可能比他们作的更好。
关于尖峰遗漏的问题,看看赖奎斯特采样定理(数字信号处理),就会知道了。
  • 打赏
  • 举报
回复
数字蛋糕 2001-10-28
up
  • 打赏
  • 举报
回复
数字蛋糕 2001-06-16
可是怎么通过表达式求导函数呢?就算求了导函数,也同样存在导函数的取样问题啊。
  • 打赏
  • 举报
回复
EastDawn 2001-05-15
根据其导函数确定取样间隔,变化幅度越大、则取样间隔越小
  • 打赏
  • 举报
回复
电视人 2001-05-14
用个笨办法,找到积分函数,如果觉得哪个区间有尖峰,就积一积,没准找的到
  • 打赏
  • 举报
回复
NowCan 2001-05-13
确实是个难题,像sin(1/x)这类函数怎么画???
  • 打赏
  • 举报
回复
数字蛋糕 2001-05-13
好像没有人呢……
  • 打赏
  • 举报
回复
数字蛋糕 2001-01-17
怎么个随机法呢?
我想代码就不必贴出来了,我现在只是实现了几个基本的函数的绘制(抛物线,双曲线什么的).而且采用的是比较特殊化的(即毫无通用性的)绘制方法(有时候甚至用到反函数来绘制,反正函数特征已知).正当我想实现表达式的时候,就出现了这个问题.
  • 打赏
  • 举报
回复
dearmite 2000-12-15
对,我的信箱
dearmite@sina.com
这好象不是大家说的那么高的数学,我想用一点随机过程就行了吧,

也就是,:去掉一些点,
我对此感兴趣,我学自动控制的,呵呵,
有空交流一下,OICQ:8195819
说明是图像算法的爱好者
  • 打赏
  • 举报
回复
dearmite 2000-12-15
看看代码吧,一般看不见的点画它干什么,我帮你搞一下,这需要另外一个类对此数据
先处理一下,

  • 打赏
  • 举报
回复
mutant 2000-12-15
tchaikov:能发一份吗?
cybercake:如果做出来了,给我发一份源程序吧,我也想知道,谢谢
Email: wwwolf@263.net
  • 打赏
  • 举报
回复
数字蛋糕 2000-12-12
我的软件要求比较高的实时性,而且还要能够进行平滑的滚动......
同时还要兼顾保真度。不过好在是自己做着玩,没人把刀架在我的脖子上......
  • 打赏
  • 举报
回复
tchaikov 2000-11-28
你的前一个问题让我想起以前画地图边界碰到的一个类似的问题,对于同样的边界坐标数据,使用小比例尺时应该忽略大量的边界点但又必须保持边界的形状不变,当时也是费尽脑汁。后来我采用的办法是逐段(不是一段而是多段连续折线做为一段)计算其重心再将重心相连的办法,因为采样的步进基本一致,才勉强予以解决。不过这种方法可能对你不一定有用,我当时是在AUTOCAD下处理的,而且是一次性的,不必考虑速度问题。
地图的边界采样完全是间断点,如果有函数表达式,通过求导计算出拐点应该还是可以的吧。实在可悲,高等数学我已经忘得差不多了。
  • 打赏
  • 举报
回复
数字蛋糕 2000-11-28
我说明白了没有?大家给点意见......
  • 打赏
  • 举报
回复
数字蛋糕 2000-11-23
上面打错一个字,问题一中的z轴应该改成y轴。
该死的德文键盘......
  • 打赏
  • 举报
回复
数字蛋糕 2000-11-23
不好意思啦,我在这里详细说明一下。(以下的例子皆指在1024x768的屏幕分辨率下)

问题1、比如说对于一个简单的抛物线y=x^2,如果屏幕的y区间在(+20,-20)之间,x区间在(+25,-25)之间,根据定步长采样绘图的结果可以看出是一个抛物线,但是如果在同样的分辨率和坐标映射比例上,对于函数y=10000*x^2,其实际应该显示屏幕上的抛物线翼展宽度已经小于一个像素在坐标系中的宽度,这个时候我们不能采用原来的简单的采样策略(即定步长采样)来进行画线,因为这样只能得到一个不完整的线段或者干脆什么都没有。而实际上在这种情况下,我们可以通过画一条从坐标原点(0,0)到(0,MaxY)的一条像素宽的直线来代替。以上只是一个简单的范例并且因为函数特征已知而有解决的办法。如果对于函数特征未知的函数(比如用户输入的表达式),如果他在某个小于一个屏幕像素宽度的区间上有尖峰(实际上可以用一条平行于z轴的线段来绘制),对于某种固定的取样策略(比如说定步长取样),这条本应画出的线段就会被忽略。所以我的问题是:如何避免这种未知特征的函数曲线绘制中的尖峰遗漏。

问题二:跟上面的情况有点类似。一个简单的情况是,对于高振荡正弦函数y=100*Sin(10000*x),如果其周期在屏幕上的视觉长度小于一个像素所表示的坐标宽度时,如果采用一般的取样策略(比如说定角取样),在屏幕上画出来的是一条粗为100单位的横线或者干脆是乱七八糟的折线(定长取样)。这个不但浪费时间,而且完全没有表现出曲线的特征,还遮挡了其他的曲线。对于比较复杂的情况,如果振荡函数经过另一个函数调制,那么绘制出所有的样点实际上没有什么很大的意义。所以我的意思是,如何在算法上识别高振荡函数并提取其包络,以便清楚的描述曲线的外形。

谢谢大家看我的问题。
  • 打赏
  • 举报
回复
Lhasa_MM 2000-11-22
我已经是数学系毕业的了,怎么还象听圣经一样,一点也不懂,能不能说得“土”一点,没准还可以帮你一下。
  • 打赏
  • 举报
回复
数字蛋糕 2000-11-22
过了这么久,没有人能回答吗?给个方向也行啊。
  • 打赏
  • 举报
回复
发帖
数据结构与算法
加入

3.2w+

社区成员

数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
申请成为版主
帖子事件
创建了帖子
2000-10-15 06:27
社区公告
暂无公告