این هم سورس اپلتی که در این سایت استفاده شده! ببین به کارت میاد!
// Decompiled by DJ v3.2.2.67 Copyright 2002 Atanas Neshkov Date: 2003/11/04 14:31:06
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: JAX
import java.applet.Applet;
import java.awt.*;
import java.awt.image.*;
import java.io.PrintStream;
import java.util.*;
public class hmpanlet extends Applet
implements Runnable, ImageProducer, ImageConsumer
{
public final boolean mouseDown(Event event, int i, int j)
{
f4 = true;
f5 = i;
f6 = j;
if(event.shiftDown())
{
f7 = true;
f13 = System.currentTimeMillis();
}
return true;
}
public final boolean mouseUp(Event event, int i, int j)
{
f4 = false;
if(f7)
{
f7 = false;
f12 += System.currentTimeMillis() - f13;
}
return true;
}
public final boolean mouseDrag(Event event, int i, int j)
{
if(f4)
{
int k = i - f5;
int l = j - f6;
if(f7)
{
double d = 620D / (double)(f25 + f26);
double d1 = f31 / 60D;
double d2 = 0.001D * (double)k * (double)Math.abs(k);
double d3 = 0.001D * (double)l * (double)Math.abs(l);
if(d2 > 50D)
d2 = 50D;
if(d2 < -50D)
d2 = -50D;
if(d3 > 50D)
d3 = 50D;
if(d3 < -50D)
d3 = -50D;
double d4 = d2;
double d5 = d3;
f9 = d * d1 * d4 * 0.5D;
if(event.controlDown() || event.metaDown())
f10 = d5 * 0.01D;
else
f8 = d * d1 * d5 * -0.25D;
} else
{
f14 += k;
if(event.controlDown() || event.metaDown())
f15 += l;
else
f16 += l;
f5 = i;
f6 = j;
}
}
return true;
}
public final boolean keyDown(Event event, int i)
{
if(f12 != 0L && !f7)
System.out.println("Velocity FPS: " + (1000D * (double)f11) / (double)f12 + " (" + f11 + " images in " + (double)f12 / 1000D + " seconds)");
if(f2 != 0L)
System.out.println("Burst FPS: " + (1000D * (double)f3) / (double)f2);
System.out.println("azimuth = " + f30 + ", FOV angle = " + f31 + ", elevation = " + f32);
System.out.println("azimuth v = " + f9 + ", FOV angle v = " + f10 + ", elevation v = " + f8);
return true;
}
public final void paint(Graphics g)
{
update(g);
}
public final void update(Graphics g)
{
if(f0 != null)
g.drawImage(f0, 0, 0, this);
if(f18 && f0 == null)
{
Rectangle rectangle = bounds();
int i = rectangle.width;
int j = rectangle.height;
g.setColor(Color.white);
g.fillRect(0, 0, i, j);
g.setFont(new Font("Helvetica", 3, 12));
FontMetrics fontmetrics = g.getFontMetrics();
String s = "Hot";
String s1 = "Media";
int k = (i - (fontmetrics.stringWidth(s) + fontmetrics.stringWidth(s1) + 4)) / 2;
g.setColor(Color.red);
g.drawString(s, k, j / 2);
g.setFont(new Font("Helvetica", 2, 12));
g.setColor(Color.black);
g.drawString(s1, k + fontmetrics.stringWidth(s) + 2, j / 2);
}
}
public final void run()
{
Thread thread = Thread.currentThread();
try
{
if(thread == f1)
{
MediaTracker mediatracker = new MediaTracker(this);
String s = getParameter("BACKGROUND");
Image image = getImage(getDocumentBase(), s);
mediatracker.addImage(image, 0);
try
{
for(; !mediatracker.checkAll(); mediatracker.waitForAll(1000L));
}
catch(InterruptedException _ex) { }
try
{
m13(image.getSource());
Rectangle rectangle = bounds();
m1(rectangle.width, rectangle.height);
String s2 = getParameter("azimuth");
String s4 = getParameter("fovangle");
String s6 = getParameter("elevation");
double d = 0.0D;
double d1 = 60D;
double d2 = 0.0D;
if(s2 != null)
d = Double.valueOf(s2).doubleValue();
if(s4 != null)
d1 = Double.valueOf(s4).doubleValue();
if(s6 != null)
d2 = Double.valueOf(s6).doubleValue();
m8(d, d1, d2);
f0 = createImage(this);
}
catch(Exception exception1)
{
System.out.println("PanoramIXlet.run: " + exception1);
}
try
{
repaint();
}
catch(Exception exception2)
{
System.out.println("PanoramIXlet.run: " + exception2);
}
String s1 = getParameter("azimuth-v");
String s3 = getParameter("fovangle-v");
String s5 = getParameter("elevation-v");
if(s1 != null)
f9 = Double.valueOf(s1).doubleValue();
if(s3 != null)
f10 = Double.valueOf(s3).doubleValue();
if(s5 != null)
f8 = Double.valueOf(s5).doubleValue();
if(s1 != null || s3 != null || s5 != null)
{
f7 = true;
f13 = System.currentTimeMillis();
}
while(f1 == thread)
try
{
if(f0 != null)
{
if(f17 == 0L)
f17 = System.currentTimeMillis();
if(System.currentTimeMillis() - f17 > 2000L && f18)
{
f18 = false;
repaint();
}
}
if(!m0())
try
{
Thread.sleep(50L);
}
catch(InterruptedException _ex) { }
}
catch(Exception exception3)
{
System.out.println("PanoramIXlet.run: " + exception3);
}
}
}
catch(Exception exception)
{
System.out.println("PanoramIXlet.run: " + exception);
}
}
public final void start()
{
f11 = 0;
f12 = 0L;
f3 = 0;
f2 = 0L;
requestFocus();
if(f1 == null)
{
f1 = new Thread(this, "PanoramIX recalc");
f1.start();
}
}
public final void stop()
{
if(f1 != null && f1.isAlive())
f1.stop();
f1 = null;
}
private final boolean m0()
{
double d = 620D / (double)(f25 + f26);
double d1 = f31 / 60D;
long l = System.currentTimeMillis();
boolean flag = false;
if(f7)
{
if(f9 != 0.0D || f10 != 0.0D || f8 != 0.0D)
{
flag = true;
m9(f9);
m11(f10);
m10(f8);
m3(null);
f11++;
long l1 = System.currentTimeMillis() - l;
try
{
Thread.sleep((50L * l1) / 950L);
}
catch(InterruptedException _ex) { }
}
} else
{
d *= 2D;
if(f14 != 0)
{
m9(d * d1 * (double)f14 * 0.5D);
f14 = 0;
flag = true;
}
if(f15 != 0)
{
m11((double)f15 * 0.01D);
f15 = 0;
flag = true;
}
if(f16 != 0)
{
m10(d * d1 * (double)f16 * -0.25D);
f16 = 0;
flag = true;
}
if(flag)
{
m3(null);
f3++;
long l2 = System.currentTimeMillis() - l;
f2 += l2;
try
{
Thread.sleep((50L * l2) / 950L);
}
catch(InterruptedException _ex) { }
}
}
return flag;
}
public final void setOrientation(double d, double d1, double d2)
{
m8(d, d1, d2);
m3(null);
}
public final void SetControlValues(int i, int j, int k)
{
setOrientation(i, j, k);
}
private final void m1(int i, int j)
{
f19 = i;
f20 = j;
f23 = new int[i + 1];
f24 = new double[i / 2 + 1];
f22 = new int[i * j];
}
public final synchronized void addConsumer(ImageConsumer imageconsumer)
{
if(f21.contains(imageconsumer))
return;
f21.addElement(imageconsumer);
try
{
m2(imageconsumer);
m3(imageconsumer);
}
catch(Exception _ex)
{
if(isConsumer(imageconsumer))
imageconsumer.imageComplete(1);
}
}
private final void m2(ImageConsumer imageconsumer)
{
if(isConsumer(imageconsumer))
imageconsumer.setDimensions(f19, f20);
if(isConsumer(imageconsumer))
imageconsumer.setColorModel(ColorModel.getRGBd efault());
if(isConsumer(imageconsumer))
imageconsumer.setHints(14);
}
public final synchronized boolean isConsumer(ImageConsumer imageconsumer)
{
return f21.contains(imageconsumer);
}
public final synchronized void removeConsumer(ImageConsumer imageconsumer)
{
f21.removeElement(imageconsumer);
}
public final void startProduction(ImageConsumer imageconsumer)
{
addConsumer(imageconsumer);
}
public final void requestTopDownLeftRightResend(ImageConsumer imageconsumer)
{
}
private final void m3(ImageConsumer imageconsumer)
{
int i = f19;
int j = f20;
int k = f25;
double d = (((double)k / 6.2831853071795862D) * 360D) / f33;
double d1 = Math.tan(f31 * 0.0087266462599716477D);
double d2 = (2D * d1) / (double)i;
double d3 = d * d2;
m6(f33);
double d4 = (3.1415926535897931D * f30) / 180D;
double d5 = (double)f26 * 0.5D;
double d6 = 0.5D * d3 * (double)j;
double d7 = m7(d5, d6, d);
double d8 = d6 - d7;
double d9 = d6 + d7;
int ai[] = f23;
double ad[] = f24;
double d10 = -d1;
int l = 0;
int i1 = i / 2 + 1;
for(; l < i; l++)
{
double d11 = Math.atan(d10);
int j1 = (int)((d11 + d4) * d);
if(j1 < 0)
j1 += k;
if(j1 >= k)
j1 -= k;
ai[l] = j1;
if(l < i1)
ad[l] = Math.cos(d11);
d10 += d2;
}
d10 = -d1;
m4(d5, d7, d, d3, j, i, i1, k);
m5(imageconsumer);
}
private final void m4(double d, double d1, double d2, double d3, int i, int j, int k, int l)
{
int ai[] = f23;
double ad[] = f24;
int ai1[][] = f29;
int i1 = f25 * f26;
int ai2[] = f22;
double d4 = (d * d1) / d2 - 0.5D * d3 * (double)i;
for(int j2 = 0; j2 < i; j2++)
{
double d5 = d3 * (double)j2 + d4;
int j1 = j * j2;
int k1 = (j1 + j) - 1;
int l1 = 0;
for(int i2 = j - 1; l1 < k; i2--)
{
int k2 = (int)(d + d5 * ad[l1]) * l;
int l2 = ai[l1] + k2;
if(l2 < 0 || l2 >= i1)
{
ai2[j1] = ai2[k1] = 0xff000000;
} else
{
ai2[j1] = ai1[l2 >> 19][l2 & 0x7ffff];
int i3 = ai[i2] + k2;
ai2[k1] = ai1[i3 >> 19][i3 & 0x7ffff];
}
j1++;
k1--;
l1++;
}
}
}
private final void m5(ImageConsumer imageconsumer)
{
if(imageconsumer != null)
{
imageconsumer.setPixels(0, 0, f19, f20, ColorModel.getRGBdefault(), f22, 0, f19);
imageconsumer.imageComplete(2);
return;
}
for(Enumeration enumeration = f21.elements(); enumeration.hasMoreElements();)
{
ImageConsumer imageconsumer1 = (ImageConsumer)enumeration.nextElement( ;);
imageconsumer1.setPixels(0, 0, f19, f20, ColorModel.getRGBdefault(), f22, 0, f19);
if(isConsumer(imageconsumer1))
imageconsumer1.imageComplete(2);
}
}
private final void m6(double d)
{
if(f31 > d)
{
f31 = d;
f30 = 0.5D * d;
} else
{
if(d >= 360D)
return;
if(f30 > d - 0.5D * f31)
{
if(2D * f30 > d + 360D)
f30 = 0.5D * f31;
else
f30 = d - 0.5D * f31;
} else
if(f30 < 0.5D * f31)
f30 = 0.5D * f31;
}
}
private final double m7(double d, double d1, double d2)
{
boolean flag = false;
double d3 = d2 * Math.tan(f32 * 0.017453292519943295D);
double d4 = d1 - (d * d3) / d2;
double d9 = d1 + (d * d3) / d2;
double d12 = d2 * 2D;
if(d12 < d)
d12 = d;
if(d4 > d)
{
double d5 = d;
d3 = ((d1 - d5) * d2) / d;
flag = true;
d9 = d1 + d3;
if(d9 > d)
{
d3 = 0.0D;
flag = true;
double d6 = d1;
d9 = d1;
}
} else
if(d9 > d)
{
double d10 = d;
d3 = ((d10 - d1) * d2) / d;
flag = true;
double d7 = d1 - d3;
if(d7 > d)
{
d3 = 0.0D;
flag = true;
double d8 = d1;
double d11 = d1;
}
}
if(flag)
f32 = Math.atan2(d3, d2) * 57.295779513082323D;
return d3;
}
private final void m8(double d, double d1, double d2)
{
m12(d1);
f30 = d;
f32 = d2;
}
private final void m9(double d)
{
f30 += d;
if(f30 < 0.0D)
f30 += 360D;
if(f30 >= 360D)
f30 -= 360D;
}
private final void m10(double d)
{
f32 -= d;
if(f32 < -89D)
f32 = -89D;
if(f32 > 89D)
f32 = 89D;
}
private final void m11(double d)
{
if(d >= 0.0D)
f31 *= 1.0D + d;
else
f31 /= 1.0D - d;
if(f31 < 15D)
f31 = 15D;
if(f31 > 100D)
f31 = 100D;
}
private final void m12(double d)
{
f31 = d;
if(f31 < 15D)
f31 = 15D;
if(f31 > 100D)
f31 = 100D;
}
public final void setDimensions(int i, int j)
{
f25 = i;
f26 = j;
int k = f25 * f26;
int l = k >> 19;
f29 = new int[l + 1][];
int i1;
for(i1 = 0; i1 < l; i1++)
f29[i1] = new int[0x80000];
f29[i1] = new int[k & 0x7ffff];
}
public final void setProperties(Hashtable hashtable)
{
}
public final void setColorModel(ColorModel colormodel)
{
}
public final void setHints(int i)
{
}
public final void setPixels(int i, int j, int k, int l, ColorModel colormodel, byte abyte0[], int i1,
int j1)
{
for(int k1 = 0; k1 < l; k1++)
{
int l1 = i1 + k1 * j1;
int i2 = i + (j + k1) * f25;
for(int j2 = 0; j2 < k;)
{
f29[i2 >> 19][i2 & 0x7ffff] = colormodel.getAlpha(abyte0[l1] & 0xff) << 24 | colormodel.getRed(abyte0[l1] & 0xff) << 16 | colormodel.getGreen(abyte0[l1] & 0xff) << 8 | colormodel.getBlue(abyte0[l1] & 0xff);
j2++;
l1++;
i2++;
}
}
}
public final void setPixels(int i, int j, int k, int l, ColorModel colormodel, int ai[], int i1,
int j1)
{
for(int k1 = 0; k1 < l; k1++)
{
int l1 = i1 + k1 * j1;
int i2 = i + (j + k1) * f25;
for(int j2 = 0; j2 < k;)
{
f29[i2 >> 19][i2 & 0x7ffff] = ai[l1] | 0xff000000;
j2++;
l1++;
i2++;
}
}
}
public final synchronized void imageComplete(int i)
{
switch(i)
{
case 2: // '\002'
case 3: // '\003'
f27 = 1;
break;
case 1: // '\001'
case 4: // '\004'
default:
f27 = -1;
break;
}
f28.removeConsumer(this);
notifyAll();
}
public final synchronized boolean m13(ImageProducer imageproducer)
{
f28 = imageproducer;
f27 = 0;
imageproducer.startProduction(this);
try
{
while(f27 == 0)
wait();
}
catch(InterruptedException _ex)
{
return false;
}
return f27 > 0;
}
public hmpanlet()
{
f18 = true;
hmpanlet _tmp = this;
double _tmp1 = 0.001D;
hmpanlet _tmp2 = this;
double _tmp3 = 50D;
hmpanlet _tmp4 = this;
double _tmp5 = 0.5D;
hmpanlet _tmp6 = this;
double _tmp7 = -0.25D;
hmpanlet _tmp8 = this;
double _tmp9 = 0.01D;
f21 = new Vector();
f30 = 60D;
f31 = 60D;
hmpanlet _tmp10 = this;
double _tmp11 = 15D;
hmpanlet _tmp12 = this;
double _tmp13 = 100D;
hmpanlet _tmp14 = this;
double _tmp15 = 3.1415926535897931D;
f33 = 360D;
}
public Image f0;
public Thread f1;
public long f2;
public int f3;
public boolean f4;
public int f5;
public int f6;
public boolean f7;
public double f8;
public double f9;
public double f10;
public int f11;
public long f12;
public long f13;
public int f14;
public int f15;
public int f16;
public long f17;
public boolean f18;
public int f19;
public int f20;
public Vector f21;
public int f22[];
public int f23[];
public double f24[];
public int f25;
public int f26;
public int f27;
public ImageProducer f28;
public int f29[][];
public double f30;
public double f31;
public double f32;
public double f33;
}