Java迭代分形——3D图形

文章介绍了如何使用Java编程实现迭代分形图像的绘制,通过不断应用数学公式迭代坐标并打点,形成复杂而美丽的2D图像。此外,还展示了如何通过内存缓冲和动画效果创建3D图形,如立方体和球体,通过调整参数和颜色实现不同视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        迭代分形是一种数学上的概念,是指通过一种简单的规则,不断重复运算,最终得到复杂的图形。我们通过画板来实现图像的生成,迭代图像即通过一定的坐标推算公式,从初始坐标点不断获取新的坐标值并打点,修改点迹颜色以形成一个有深浅变化的图像。用代码实现自然界的美,生成一系列二维,三维的图像,它们不是杂乱无章的,而是具有一定规则的富有美感的图像。

        首先创建一个窗体类,这样可以在窗体类中重写容器的paint方法。添加和创建一些基本组件:画板标题、画板大小、关闭方式等。

public class DrawPad extends JFrame{
		public DrawPad(){
			setTitle ("迭代分形");
			setSize (800,800);
			setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
			setVisible (true);
			setLocationRelativeTo (null);
		}	

        要想在窗体中呈现一些图案还需要添加一些数据,利用数学函数的方式,利用循环不断的更新点的坐标,使成千上万的点组成我们需要创建的图案。

	    public void paint(Graphics g){			
			super.paint (g);
			drawIFS_01 (g);

        public void drawIFS_01(Graphics g){
			double a = -1.8, b = -2.0, c = -0.5, d = -0.9;
            double xn = 0, yn = 0;
			for(int i = 0; i < 100000; i++){
                double tempx = Math.sin (a * yn) + c * Math.cos (a * xn);
			    double tempy = Math.sin (b * xn) + d * Math.cos (b * yn);
                // 迭代给下一次 xn yn
				xn = tempx;
				yn = tempy;
				int px = (int) (tempx * 100) + 400;
				int py= (int) (tempy * 100) + 400;
				g.setColor (Color.blue);
				g.drawLine (px, py, px, py);
			}
		}
        public static void main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值