海岸线分形比例

时间:2012-09-29 20:14:17

标签: java fractals

我在一个一个宽的窗口上做了一个海岸线分形,我想在下面描绘第一个,但是,我无法弄清楚用于制作角度的x和y坐标形成90度并仍然适合屏幕,我不需要任何代码,我只想知道如何使用哪个x和y坐标。谢谢!

Coastline Fractal

点数:
第一点:(0,0.5)
第二点:(0.25,0.75)
第3点:(0.75,0)
第4点:(1,0.5)

我的工作(虽然有时凌乱且难以理解):enter image description here


从图中看,第一个和最后一个点的y值均为0.5。由于查看窗口为1,因此将其分为4个部分,每个部分的长度为0.25。如果在y = 0.5处绘制水平线而形成的三角形是根据图像的等腰线。因此,你解决:sin(45)= x / 0.5。

2 个答案:

答案 0 :(得分:0)

重新"x and y coordinates are doubles in between 0 and 1"

然后,您需要从模型(构成分形的点集)和视图(GUI显示)进行翻译。模型将从0变为1,视图从0到图形窗口的宽度。将模型乘以某个比例因子的简单线性变换将起作用。

答案 1 :(得分:0)

好像你想要将抽象坐标系映射到你的屏幕上。

假设您的端点(在任意坐标中)是(0,0)和(1,0)。那么你在这个系统中最左边的数字的点数将是(0,0),(1/4,sqrt(2)/ 4),(1 / 2,0),(3/4,-sqrt(2) )/ 4)和(1,0)。

其他图表通过某种方法计算。这听起来像是你的问题专注于将它安装到屏幕上,所以我会继续这样做。将其安装到屏幕上的方法是一样的。

从那里,你有一个屏幕坐标系。每个点都转换为屏幕。假设您有一个1000 x 1000的屏幕,左上角有屏幕坐标(0,0)。如果您想占用整个屏幕,那么您将执行以下操作:

  • 翻转y坐标(+ y在屏幕上显示)
  • 确定任意坐标的x和y的整个范围(x为1,y为sqrt(2)/ 2)
  • 将x值乘以1000,将y值乘以2000 / sqrt(2)以扩展到屏幕。
  • 从y值中减去500,使图像在y方向居中。