初学者求助:用java画Koch分形,和书上的程序一样,但运行出来总是不对。请高手指教。

问题描述

这是源代码,据此画出来的和Koch有差距啊。那位高手指教一下怎么改?太谢谢了。importjava.awt.*;importjavax.swing.JPanel;publicclassKochPanelextendsJPanel{privatefinalintpanel_w=400,panel_h=400;privatefinaldoublesq=Math.sqrt(3.0)/6;privatefinalinttopx=200,topy=20,leftx=60,lefty=300,rightx=340,righty=300;privateintcurrent;publicKochPanel(intcurrentOrder){current=currentOrder;setBackground(Color.black);setPreferredSize(newDimension(panel_w,panel_h));}publicvoiddrawFractal(intorder,intx1,inty1,intx5,inty5,Graphicspage){intdeltaX,deltaY,x2,y2,x3,y3,x4,y4;if(order==1)page.drawLine(x1,y1,x5,x5);else{deltaX=x5-x1;deltaY=y5-y1;x2=x1+deltaX/3;y2=y1+deltaY/3;x3=(int)((x1+x5)/2+sq*(y1-y5));y3=(int)((y1+y5)/2+sq*(x5-x1));x4=x1+deltaX*2/3;y4=y1+deltaY*2/3;drawFractal(order-1,x1,y1,x2,y2,page);drawFractal(order-1,x2,y2,x3,y3,page);drawFractal(order-1,x3,y3,x4,y4,page);drawFractal(order-1,x4,y4,x5,y5,page);}}publicvoidpaintComponent(Graphicspage){super.paintComponent(page);page.setColor(Color.green);drawFractal(current,topx,topy,leftx,lefty,page);drawFractal(current,leftx,lefty,rightx,righty,page);drawFractal(current,rightx,righty,topx,topy,page);}publicvoidsetOrder(intorder){current=order;}publicintgetOrder(){returncurrent;}}importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassKochSnowflakeextendsJAppletimplementsActionListener{privatefinalintapplet_width=400,applet_height=440,min=1,max=9;privateJButtonincrease,decrease;privateJLabeltitleLabel,orderLabel;privateKochPaneldrawing;privateJPanelappletPanel,tools;publicvoidinit(){tools=newJPanel();tools.setLayout(newBoxLayout(tools,BoxLayout.X_AXIS));tools.setBackground(Color.yellow);tools.setOpaque(true);titleLabel=newJLabel("thekochsnowflake");titleLabel.setForeground(Color.black);increase=newJButton(newImageIcon("increase.gif"));increase.setPressedIcon(newImageIcon("decrease.gif"));increase.setMargin(newInsets(0,0,0,0));increase.addActionListener(this);decrease=newJButton(newImageIcon("decrease.gif"));decrease.setPressedIcon(newImageIcon("increase.gif"));decrease.setMargin(newInsets(0,0,0,0));decrease.addActionListener(this);orderLabel=newJLabel("order:1");orderLabel.setForeground(Color.black);tools.add(titleLabel);tools.add(Box.createHorizontalStrut(20));tools.add(decrease);tools.add(increase);tools.add(Box.createHorizontalStrut(20));tools.add(orderLabel);drawing=newKochPanel(1);appletPanel=newJPanel();appletPanel.add(tools);appletPanel.add(drawing);getContentPane().add(appletPanel);setSize(applet_width,applet_height);}publicvoidactionPerformed(ActionEventevent){intorder=drawing.getOrder();if(event.getSource()==increase)order++;elseorder--;if(order>=min&&order<=max){orderLabel.setText("order"+order);drawing.setOrder(order);repaint();}}}

解决方案

解决方案二:
在这里我找到了一个科赫雪花分形曲线的源代码,你可以去看一下:
解决方案三:
高手拜托啊

时间: 2024-09-01 01:05:48

初学者求助:用java画Koch分形,和书上的程序一样,但运行出来总是不对。请高手指教。的相关文章

java 控件显示不出来-为什么控件没显示,请高手指教

问题描述 为什么控件没显示,请高手指教 package listener; import java.awt.*; import javax.swing.*; public class ControCicle1 extends JFrame{ private JButton jbtEnlarge=new JButton(""large""); private JButton jbtShrink=new JButton(""shrink"&

西部数码代理思朴互联买的java虚拟主机空间,但上传程序时出错?

问题描述 西部数码代理思朴互联买的java虚拟主机空间,但上传程序时出错? 西部数码代理思朴互联买的java虚拟主机空间,但上传程序时出错?错误提示Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: SELECT command denied to user bunnydonkey@127.0.0.1 for table information 请问这个是什么原因呢 解决方案 没有权限 mysql的账号和密码对吗? 网站

用JAVA做一个幸运抽奖的操作 不知道怎么做请高手指教

问题描述 用JAVA做一个幸运抽奖的操作不知道怎么做请高手指教publicclassGoodLuck{publicstaticvoidmain(String[]args){intcustNo=8349;//客户会员号(说明:customer---客户)intgewei=custNo%10;//分解获得个位数intshiwei=custNo/10%10;//分解获得十位数intbaiwei=custNo/100%10;//分解获得百位数intqianwei=custNo/1000;//分解获得千位

关于java线程同步问题,在线等。请高手指教。

问题描述 如题:JAVA多线程编程.用JAVA写一个多线程程序,写四个线程,对一个变量i同步操作,二个线程对变量i加1,二个线程对变量i减一,输出.我的代码如下:我将对变量i的操作方法add前加了synchronized,但是还是不能实现对变量i的操作同步,请高手指点一下.classResult{Integeri;Result(inta){this.i=newInteger(a);}synchronizedpublicintadd(booleanbool){if(bool){i=newInteg

第一次学Java但不知怎么写 这段代码 请高手指教 感谢万分啊

问题描述 请输入一段字符(一下从控制台输入)河山只在我梦中,祖国已多年未亲近,可是不管怎么样也改不了,我的祖国心.洋装虽然穿在身,我心依然是中国心.请输入要查询的字符串我(从控制台输入)最后出现如下:我出现的位置:42943请问高手这段Java代码怎么写刚学但不会写还有小弟没积分所以给不了望各位别介意 解决方案 解决方案二:望各位好心人帮帮忙啊解决方案三:数组查询问题:可以直接调用方法的:控制台输入的那些存储到一个string数组里:然后查找"我"字的下标就可以了啊:charat:好像

java 编译时出现的问题,请高手指教一下(本人不是一般的菜啊)

问题描述 编译时,出现下面问题是什么原因啊?C:>javaccode.javacode.java:8:类Main是公共的,应在名为Main.java的文件中声明publicclassMainextendsJFrameimplementsActionListener,SerialPortEventListener{^1错误 解决方案 解决方案二:没有人回答么解决方案三:类名与文件名要相同解决方案四:文件名要与publicclassMain中的Main相同解决方案五:文件名改成Main.java解决

java 读取txt文件,请高手指教!

问题描述 882359811.5882359926188235913492882359227018823593065588235935220.588235935830.588235942160.588235948713.588235949170.5882359512418823599180188235999521882359100331882359113222882359131535882359155352882359140570.58823591558758823591481338823592

我的JAVA SRC原代码占率CPU过大...可能经常出现死循环...我出钱请高手帮我解决问题..

问题描述 如果有诚意修复的高手,,请加我QQ15001594.或者留下QQ.带原始代码..的SRC..我是用NetBeansIDE6.5编译的. 解决方案 解决方案二:项目不大的话,可以发上来大家看看,不用钱的.

编程-如何用Java画一个阿基米德螺旋曲线?

问题描述 如何用Java画一个阿基米德螺旋曲线? 解决方案 在网上下载第三方包JFreeChart,可以实现 解决方案二: java画Hibert曲线用 Java 画几个函数曲线java画Koch曲线 解决方案三: 楼组图挂了....... 解决方案四: 楼组图挂了.......