返回列表 回复 发帖
需要用到三维扫描框架,这是以前的一个,很简陋,现在也不知是不是草稿,还是能用的,
还有四元数计算工具

四元数乘法工具.gsp (25.64 KB)

按理说,应该只对属于空间M集或J集表面的那些点进行迭代,减少计算量,但是,寻找那些点更不容易,所以,对长方体内的任意一点进行扫描,实在没办法,不但奇慢,而且迭代次数上不去
速度慢是免不了的。关键是如何实现消隐,即看不到的表面部分不扫描。我的资料上说,计算机图形学中的深度缓存(Z-buffer)法是最简单的面消隐法,但没具体讲这一方法的原理和指令代码。如果找到了这一原理和指令,并研究出画板实现方法,四元数分形就可以解决了。看过xyj老师《我的分形学习之路》帖中的四元数分形图片,就差这步消隐了。
百度一下
简介
  深度缓存算法(depth—buffer method)是一种常用的判定对象表面可见性的物空间算法,它在投影面上的每一像素位置比较场景中所有面的深度。由于通常沿着观察系统的z轴来计算各对象距观察平面的深度,该算法也称为z缓存(z-buffer)算法。编辑本段算法描述
  该算法需要两个缓存器,一个是用来存放颜色的颜色缓存器,另一个是用来存放深度的深度缓存器。利用深度缓存器,可以进行可见性的判断,消除隐藏对象。其具体做法是:   首先对深度缓存器和颜色缓存器进行初始化,把深度缓存器中所有单元置成一个最大可能的深度值,把颜色缓存器中各单元置成背景颜色。然后将场景中的物体不分次序地投影到象平面上去。对于每个投影点(象素),把投影物体在该点处的深度与深度缓存器中相应位置上的深度值进行比较,如果前者小于后者,那么就把当前被投影物体的颜色写到颜色缓存器中去,同时用当前投影物体的深度去更新深度缓存器中相应象素的深度,否则不做任何操作。编辑本段优缺点
  深度缓存算法中物体投影到象平面上的次序是任意的,无须将场景中的表面进行排序,物体之间的遮挡关系是通过深度缓存器进行深度比较加以确定的,算法易于实现。   深度缓存算法只能显示距离视点最近的物体,而且这些物体都是不透明的,无法看到被遮挡的物体。   深度缓存算法经常执行一些最终不起作用的中间计算过程。由于对象按任意次序进行处理,因此有些表面进行了颜色计算但事后又被更近的表面所代替。为了缓减这一问题,有些图形软件提供选项让用户调整表面测试的深度范围。例如,通过深度测试排除较远的对象。使用该选项还可以排除非常靠近投影平面的对象。高档计算机图形系统一般集成了深度缓存算法的硬件实现。
这倒有点象构造陷阱时的先上后下与先下后上的算法。
“消隐法”和“先上后下与先下后上”还是很不相同的,前者在“消”,而后者在于叠放顺序不同,不能产生空间感,所产生的效果只能算拟3D。
四元数及设想

四元数1.jpg (51.56 KB)

四元数1.jpg

四元数2.jpg (124.7 KB)

四元数2.jpg

四元数3.jpg (50.38 KB)

四元数3.jpg

四元数4.jpg (39.3 KB)

四元数4.jpg

下午试验了一下,电脑根本带不动,还不如老老实实地扫描面轨迹,还将就着能运行。
忙了半天,留个纪念,扫了个逃逸时间迭代20次的J集,可以发现,内部结构全被低迭代时间圈给包住了

空间J集(逃逸时间).jpg (19.98 KB)

空间J集(逃逸时间).jpg

逃逸时间算法主要是解决分形外部的点过早逸出问题,而立体分形恰只需表现分形的边界,所以我想不需用逃逸法,这正好减少了运算负担。另最为关键的问题是消隐。关于空间图形的扫描速度问题,是几何画板的短板,或许gsp就不适合作四元数实体分形,我们能否作成网结构呢?
19# xiaongxp


立体几何作法中的消隐方法对不规则物体多用到法向量,这一点不易办到;怎样来判断是否表面,也是个问题。哎,毕竟运算和编程不是几何画板的强项啊
返回列表