Koch雪花其實(shí)就是一種Koch曲線。

頭屯河網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
Koch曲線是一個(gè)數(shù)學(xué)曲線,同時(shí)也是早期被描述的一種分形曲線。它由瑞典數(shù)學(xué)家Helge von Koch在1904年發(fā)表的一篇題為“從初等幾何構(gòu)造的一條沒有切線的連續(xù)曲線”的論文中提出。有一種Koch曲線是象雪花一樣,被稱為Koch雪花(或Koch星),它是由三條Koch曲線圍成的等邊三角形。至于更詳細(xì)的請(qǐng)讀者百度百科。
如圖所示:
解決方案
設(shè)想從一個(gè)線段開始,根據(jù)下列規(guī)則構(gòu)造一個(gè)Koch曲線:
1.三等分一條線段;
2.用一個(gè)等邊三角形替代第一步劃分三等分的中間部分;
3.在每一條直線上,重復(fù)第二步。
Koch曲線是以上步驟地?zé)o限重復(fù)的極限結(jié)果。
Koch曲線的長(zhǎng)度為無窮大,因?yàn)橐陨系淖儞Q都是一條線段變四條線段,每一條線段的長(zhǎng)度是上一級(jí)的1/3,因此操作n步的總長(zhǎng)度是(4/3)n:若n→∞,則總長(zhǎng)度趨于無窮。Koch曲線的分形維數(shù)是log 4/log 3 ≈ 1.26,其維數(shù)大于線的維數(shù)(1),小于Peano填充曲線的維數(shù)(2)。
Koch曲線是連續(xù)的,但是處處不可導(dǎo)的。
Koch雪花的面積是 2* √3 * ssup2;/5 ,這里的s是最初三角形的邊長(zhǎng),Koch雪花的面積是原三角形面積的8/5,它成為一條無限長(zhǎng)的邊界圍繞著一個(gè)有限的面積的幾何對(duì)象。
21世紀(jì)高職高專規(guī)劃教材·計(jì)算機(jī)應(yīng)用系列:Java程序設(shè)計(jì)實(shí)例教程 后面有完整的代碼!
import?java.applet.Applet;
import?java.awt.*;
import?javax.swing.JFrame;
import?java.awt.image.BufferedImage;
import?java.util.Random;
public?class?SnowPic?extends?Applet?implements?Runnable{
Thread?mainThread;
Image?offScreen,gAlc[];
Random?rand;
int?stopFlag,snows,wind,threadSleep,snowSize;
int[]?snowX,snowY;
long?stopTime?=0;
Dimension?dim;
MediaTracker?mt;
public?SnowPic(){
}
int?getParameter(String?s1,int?s2){
String?s=null;
try{
s=getParameter(s1);
}catch(NullPointerException?ex){
}
return(s?!=null)?Integer.parseInt(s):s2;
}
int?getParameter(String?s1,?int?s2,?int?max,?int?min){
String?s=null;
try{
s=getParameter(s1);
}catch(NullPointerException?ex){
}
if(s!=null){
if((s2=Integer.parseInt(s))max){
return?max;
}else?if?(s2min){
return?min;
}else{
return?s2;
}
}else{
return?s2;
}
}
String?getParameter(String?s1?,?String?s2){
String?s=null;
try{
s=getParameter(s1);
}catch(NullPointerException?ex){
}
return?(s!=null)?s:s2;
}
public?void?init(){
rand?=new?Random();
dim?=getSize();
snows???????=getParameter("snows",?100,?500,0);
snowSize????=getParameter("snowSize",3,10,3);
threadSleep?=getParameter("threadSleep",80,1000,10);
snowX?=?new?int?[snows];
snowY?=?new?int?[snows];
for(?int?i=0;isnows;i++){
snowX[i]=rand.nextInt()%(dim.width/2)+dim.width/2;
snowY[i]=rand.nextInt()%(dim.height/2)+dim.height/2;
}
mt?=new?MediaTracker(this);
gAlc=?new?Image[1];
try{
gAlc[0]=getImage(getDocumentBase(),?getParameter("graphic","test.gif"));
offScreen=createImage(dim.width,?dim.height);
}catch(Exception?ex){
gAlc[0]=new?BufferedImage(dim.width,?dim.height,?BufferedImage.TYPE_INT_RGB?);
offScreen=new?BufferedImage(dim.width,?dim.height,?BufferedImage.TYPE_INT_RGB?);
}
mt.addImage(gAlc[0],0);
try{
mt.waitForID(0);
}catch(InterruptedException?ex)?{
return;
}
stopFlag?=0;
}
public?void?start(){
if?(mainThread==null){
mainThread=new?Thread(this);
mainThread.start();
}
}
public?void?stop(){
mainThread?=null;
}
public?void?run(){
while(mainThread?!=null){
try{
Thread.sleep(threadSleep);
}catch(InterruptedException?ex)?{return;}
repaint();
}
}
public?void?drawBackSnow(Graphics?g){
g.setColor(Color.white);
for(int?i=0;isnows;i++){
g.fillOval(snowX[i],snowY[i],snowSize,snowSize);
snowX[i]+=rand.nextInt()%2+wind;
snowY[i]+=(rand.nextInt()%6+5)/5+1;
if(snowX[i]=dim.width)?snowX[i]=0;
if(snowX[i]0)?snowX[i]=dim.width?-1;
if(snowY[i]=dim.height?||snowY[i]0){
snowX[i]?=Math.abs(rand.nextInt()%dim.width);
snowY[i]?=0;
}
}
wind?=rand.nextInt()%5?-2;
}
public?void?paint(Graphics?g){
offScreen.getGraphics().setColor(Color.black);
offScreen.getGraphics().fillRect(0,0,dim.width,dim.height);
offScreen.getGraphics().drawImage(gAlc[0],0,0,this);
drawBackSnow(offScreen.getGraphics());
g.drawImage(offScreen,0,0,null);
}
public?void?update(Graphics?g){
paint(g);
}
public?static?void?main(String?args[]){
SnowPic?snow=new?SnowPic();
snow.setBounds(0,0,?500,?500);
snow.init();
JFrame?jf=new?JFrame("SnowPic");
jf.setSize(500,?500);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.add(snow);
jf.setVisible(true);
snow.start();
}
}
請(qǐng)參考
分享題目:java雪花程序代碼,java下雪代碼
網(wǎng)頁鏈接:http://chinadenli.net/article41/dsgcphd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、定制網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、電子商務(wù)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)