成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

使用JavaSwing組件開發(fā)畫板(4)-創(chuàng)新互聯(lián)

這是Java畫板開發(fā)的最后階段,本章節(jié)主要講解分形的繪制。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、嫩江ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的嫩江網(wǎng)站制作公司一、分形

? 1、簡述

? 分形看似毫無任何規(guī)律,但其實(shí)暗藏一定的關(guān)系,大部分的分形可以通過某種數(shù)學(xué)關(guān)系的運(yùn)算,再通過程序遞歸調(diào)用,從而可以繪制出許多圖形。其中最常見的圖形就是初中學(xué)習(xí)勾股定理后繪制的勾股樹。

二、分形繪制

? 明確思路后可以自己動手操作,體驗(yàn)分形的繪制

1、分形樹

????????? 首先繪制分形樹,先來看圖形。

??????一般來說,分形繪制我們可以使用已經(jīng)提供的函數(shù)并通過程序遞歸調(diào)用,首先是函數(shù):

?????????????????????????????????????????????????????xn+1?= a xn?+ b yn?+ e

?????? ?yn+1?= c xn?+ d yn?+ f

上述函數(shù)即繪制該分形所需的函數(shù),接下來是參數(shù)。上述圖形的參數(shù)一共有5組,每組有6個(gè)參數(shù),這些參數(shù)構(gòu)成一個(gè)二維矩陣。在繪制過程中,需要隨機(jī)選出一組參數(shù)進(jìn)行計(jì)算,一下是圖形繪制的參數(shù):

set 1     set 2     set 3     set 4     set 5
             a     0.1950    0.4620   -0.6370   -0.0350   -0.0580
             b    -0.4880    0.4140    0.0000    0.0700   -0.0700
             c     0.3440   -0.2520    0.0000   -0.4690    0.4530
             d     0.4430    0.3610    0.5010    0.0220   -0.1110
             e     0.4431    0.2511    0.8562    0.4884    0.5976
             f     0.2452    0.5692    0.2512    0.5069    0.0969

? 接下來是在程序中的實(shí)現(xiàn)過程。簡單來說就是在鼠標(biāo)點(diǎn)擊畫板空白處的時(shí)候繪制圖形。

首先創(chuàng)建列表用于保存參數(shù)。

public static final double [] a = {.195 , .462 , -.637 , -.035 , -.058};
    public static final double [] b = {-.488 , .414 , 0 , .07 , -.07};
    public static final double [] c = {.344 , -.252 , 0 , -.469 , .453};
    public static final double [] d = {.443 , .361 , .501 , .022 , -.111};
    public static final double [] e = {.4431 , .2511 , .8562 , .4884 , .5976};
    public static final double [] f = {.2452 , .5692 , .2512 , .5069 , .0969};

接著創(chuàng)建分形繪制的函數(shù),思路如下:

? 首先隨機(jī)選擇一組參數(shù),這里將會用到隨機(jī)數(shù),將對應(yīng)的參數(shù)取出

Random r = new Random();
 int R1 = r.nextInt(5);
            double A = a[R1];
            double B = b[R1];
            double C = c[R1];
            double D = d[R1];
            double E = e[R1];
            double F = f[R1];

? 接著將其帶入公式中計(jì)算

double xn = A * x0 + B * y0 + E;
double yn = C * x0 + D * y0 + F;

? 最后是遞歸,這里使用for循環(huán)進(jìn)行遞歸,同時(shí)也可以重復(fù)調(diào)用函數(shù)。接下來是整體代碼

public void IFS1(){
        Random r = new Random();
        //定義兩個(gè)變量用于保存遞歸過程產(chǎn)生的值
        double x0 = 0;
        double y0 = 0;
        //定義整數(shù)用于接收坐標(biāo)值
        int x , y;
        //遞歸體
        for (int i = 0; i< 100000; i++) {
            int R1 = r.nextInt(5);
            double A = a[R1];
            double B = b[R1];
            double C = c[R1];
            double D = d[R1];
            double E = e[R1];
            double F = f[R1];
            double xn = A * x0 + B * y0 + E;
            double yn = C * x0 + D * y0 + F;
            x0 = xn;
            y0 = yn;
            //參數(shù)轉(zhuǎn)型,將浮點(diǎn)型轉(zhuǎn)為整型,同時(shí)放大圖形
            x = ((int) (x0 * 600 + 200));
            y = ((int) (y0 * 600 + 100));
            //圖形位置設(shè)置
            x = 800 - x;
            y = 800 - y;
            graphics02.drawLine(x , y , x , y);
        }
    }

? 最終效果如下:

? 注意事項(xiàng):分形繪制比較簡單,基本上的分形函數(shù)都有提供,但在編程過程中需要注意參數(shù)的值一定要正確輸入,如果輸入錯(cuò)誤,最終圖形的會和原圖形不一致,因?yàn)樵诙啻芜f歸后差異將會被放大。?

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章標(biāo)題:使用JavaSwing組件開發(fā)畫板(4)-創(chuàng)新互聯(lián)
文章URL:http://jinyejixie.com/article12/discgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)品牌網(wǎng)站制作、做網(wǎng)站手機(jī)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
章丘市| 茶陵县| 玉山县| 澳门| 金山区| 永登县| 伽师县| 忻州市| 磐石市| 兴海县| 江油市| 石台县| 壶关县| 新晃| 临夏市| 济南市| 阿拉尔市| 札达县| 鄱阳县| 久治县| 靖宇县| 米泉市| 滨州市| 阆中市| 广河县| 桃园县| 专栏| 循化| 灵宝市| 中山市| 安化县| 乌什县| 偏关县| 玛纳斯县| 永吉县| 西青区| 格尔木市| 湟源县| 双峰县| 潜山县| 留坝县|