Math 为用于高分辨率艺术品的基于数学的图像编程
我感兴趣的是创建包含重复模式的海报大小的图像,类似于下面的两个(公共域)图像,和: 我的问题是:Math 为用于高分辨率艺术品的基于数学的图像编程,math,geometry,trigonometry,Math,Geometry,Trigonometry,我感兴趣的是创建包含重复模式的海报大小的图像,类似于下面的两个(公共域)图像,和: 我的问题是: 人们通常如何在计算机上创建这样的图像?我希望答案不是“打开Adobe Illustrator并猜测交点”,因为这些点可以用数学方法定义。但我也认为并非所有对几何模式感兴趣的人都熟悉编程 创建此类图像的最佳环境是什么?特别是,从Java、Python、处理等中获取高分辨率图像的最佳方法是什么?或者,Mathematica是最好的工具吗 实际上,在我看来,计算分数和做数学并不是难的部分(至少,这不是这
实际上,在我看来,计算分数和做数学并不是难的部分(至少,这不是这个问题的重点)我对从程序中获得高质量视觉产品的最佳方式感兴趣。使用矢量图像格式,如。这将完全适用于任何分辨率 是一个伟大的工具来创建这些 一旦有了矢量图像格式,就可以在编程语言中使用它,这取决于您选择的语言 比如说-
- .NET-
- 动作脚本-
- C++-
- WPF/Silverlight的XAML-(将SVG转换为XAML)
X = Xo + (sin((n * pi)/3 + (pi / 6)) * r)
Y = Yo - (cos((n * pi)/3 + (pi / 6)) * r)
其中n是花瓣数(0..5)
计算花瓣尖端后,只需绘制花瓣,然后在尖端开始新的花朵。您还可以设置一个边界圆,以便不绘制该圆以外的任何点。我将尝试使用Java中的iText创建PDF。PDF支持矢量图形,因此它的缩放应该没有问题。我不知道当你有大量的图形元素时,iText能很好地衡量w.r.t.的性能。A1。你可能想看看海龟图形,l-系统,迭代函数系统,空间填充曲线,还有很多我不熟悉或还没有想到的其他方法 A2。您可以使用您建议的任何语言对其中任何一种进行编程。我喜欢Mathematica,但我知道不是每个人都有它的副本,我也有它的副本,因为我从事数字运算工作,并开始玩它来制作漂亮的图片。但处理是免费的,它的设计是为了方便艺术家,对你来说可能是一个更好的起点。Mathematica和Processing都在那里进行图形处理,不需要调用外部库(或者担心使用哪个库) 而且,虽然我同意大家所说的向量是前进的方向,但不要忘记,最终的制作步骤,在纸上或屏幕上,是渲染,所以请考虑一下如何完成。例如,这可能会导致您使用Postscript或PDF作为输出格式 玩得开心
标记创建此类图像的最佳方法是学习编写PostScript。这是一门干净的语言,易学,一旦你熟悉了它,它就会非常强大
比尔·卡塞尔曼的是迄今为止高质量数学插图的最佳参考。好吧,我在初中时曾用指南针画过生命之花。。。其实很简单。。。但我认为这不是你想要的答案
基本上,它包括从每个点绘制一个半径相同的圆,直到遇到大圆(限制)。我不知道这些图像是如何创建的,我猜它们是从一本书中扫描出来的,但是,在我使用分形的工作中,我倾向于从使用
标记开始,主要是为了更改元素的大小,并看到它绘制了更多的迭代,以便获得最高的分辨率
这就是SVG的问题所在,您需要选择一个分辨率,然后创建它,它可以很好地向上和向下扩展,但是如果您以一个分辨率开发它,然后转到更高的分辨率进行演示,您可能会看到比您希望的更多的差距
如果您只想这样做并将其保存为静态图像,那么任何GUI都可以工作,因为此时您正在保存GIF,但是如果您想要它,例如,在网页上,并使它在浏览器上看起来尽可能好,那么您可能希望使用javascript
数学部分并不难,因此一旦推导出所需的递归算法,绘制图像就相当容易了。我倾向于进入下一个迭代,直到大小低于阈值,例如,半径<3,然后退出。这甚至没有回答两个问题中的一个:-)正在查找链接-但它确实回答了第一个问题,第二个问题