アルキメデスの螺線

これを見ると、何故だか判りませんが、頭がくらくらしてきます、本当に何時間もの間、気分も悪くなって、はきそうになります。故意でこんなものを作ったわけでは有りません。作っているうちに気持ちが悪くなるのに気づきました。自信のない方は他のページにジャンプしてください。アーまだ気持ち悪いのが残っている。

注意!!注意!!

プログラムミスがあります。絶対にクリックしないでください。クリックするとresume(),susped()を繰り返します。6回クリックすると本当に気分が悪くなります。しかも、パソコンをリセットしないと動きつづけてしまうことが判明しました。

/*
    A basic extension of the java.applet.Applet class
*/

import java.awt.*;
import java.applet.*;

public class Applet1 extends Applet implements Runnable
{
Thread th;
int x,y,ang=0,x1,y1;
double a=100,r;
String col;
double rad=(Math.PI)/180;
int flag=0;
int clickCount;
int sleepTime=100;
Image offscreenImg;
Graphics offscreenG;
    public void init()
    {
        // Take out this line if you don't use symantec.itools.net.RelativeURL or symantec.itools.awt.util.StatusScroller
        symantec.itools.lang.Context.setApplet(this);
    offscreenImg=createImage(size().width,size().height);
    offscreenG=offscreenImg.getGraphics();
        // This code is automatically generated by Visual Cafe when you add
        // components to the visual environment. It instantiates and initializes
        // the components. To modify the code, only use code syntax that matches
        // what Visual Cafe can generate, or Visual Cafe may be unable to back
        // parse your Java file into its visual environment.
        //{{INIT_CONTROLS
        setLayout(null);
        setSize(788,571);
        add(label1);
        label1.setBounds(672,108,67,25);
        //}}
   
        //{{REGISTER_LISTENERS
        SymMouse aSymMouse = new SymMouse();
        this.addMouseListener(aSymMouse);
        //}}
    }
   
    //{{DECLARE_CONTROLS
    java.awt.Label label1 = new java.awt.Label();
    //}}
    public void start()
    {
    if(th==null)
    {
    th=new Thread(this);
    th.start();
    }
    }
   
    public void run()
    {
    while(true)
    {
    ang=ang+10;
    if (ang>7000)
    {
    ang=0;
    }
   
   
   
   
    repaint();
    try
    {
    th.sleep(sleepTime);
    }
    catch(InterruptedException e)
    {
    }
    }
    }
   
   
    public void update(Graphics g)
    {
    paint(g);
    }

    public void paint(Graphics g)
{
label1.setText(""+ang);


offscreenG.setColor(Color.red);
r=2*(rad*ang);    //これが極方程式です
x=(int)(r*Math.cos(rad*ang));
y=(int)(r*Math.sin(rad*ang));
offscreenG.fillOval(x+300, -y+200, 10, 10);



offscreenG.setColor(Color.blue);
r=2*(rad*(ang+360));
x=(int)(r*Math.cos(rad*(ang+90)));
y=(int)(r*Math.sin(rad*(ang+90)));
offscreenG.fillOval(x+300, -y+200, 10, 10);
offscreenG.setColor(Color.green);
r=2*(rad*(ang+720));
x=(int)(r*Math.cos(rad*(ang+180)));
y=(int)(r*Math.sin(rad*(ang+180)));
offscreenG.fillOval(x+300, -y+200, 10, 10);
g.drawImage(offscreenImg, 0,0,this);

offscreenG.setColor(Color.yellow);
r=2*(rad*(ang+1080));
x=(int)(r*Math.cos(rad*(ang+180)));
y=(int)(r*Math.sin(rad*(ang+180)));
offscreenG.fillOval(x+300, -y+200, 10, 10);
g.drawImage(offscreenImg, 0,0,this);

}



public void stop()
{
if(th !=null)
{
th.stop();
th=null;
}
}

    class SymMouse extends java.awt.event.MouseAdapter
    {
        public void mouseClicked(java.awt.event.MouseEvent event)
        {
            Object object = event.getSource();
            if (object == Applet1.this)
                Applet1_MouseClicked(event);
        }
    }

    void Applet1_MouseClicked(java.awt.event.MouseEvent event)
    {
        // to do: code goes here.
        clickCount++;
        flag=clickCount%6;
        switch(flag)
        {
        case 1:
        th.suspend();
        break;
        case 2:
        th.resume();
        break;
        case 3:
        sleepTime=500;
        break;
        case 4:
        sleepTime=50;
        break;
        case 5:
        sleepTime=10;
        break;
        case 6:
        sleepTime=1;
        break;
        }
       
    }
}

BACK >>