「各位讀者,各位先進大家好,我是Arturo楊,不是阿齪楊,還
是叫我楊小哥好了。我沒想到做了小台哥的學生,問過他幾個有關學
校寫功課和報告之類的問題,就被他拉來客串演出,扮演一個亂問問
題的角色。不知道各位對我的客串演出到底滿不滿意?
提起 Java 這一個語言,本來我是一竅不通的,要我來客串這麼
一個角色,原先我是覺得有些怕怕的,後來經過一些臨陣磨槍式的惡
性補習,又到 Internet 上面收集了一些資料,寫了幾個程式,最後
又跟約翰周、雕龍王這些專家和先進們討論了一番,才對 Java 有一
些認識。
哦!對了!我寫的那個 Java 繪圖的 Applet 拿了一個A,而那
門課我也是高分閃過。現在我把這個繪圖的 Applet 放在這兒,請各
位先進和同好多多指教指教。
import java.awt.*;
import java.applet.*;
public class HexOct extends Applet {
int NewH (double a, double b, int h)
{
a = Math.PI / 180.0 * a;
b = Math.PI / 180.0 * b;
return((int) (Math.round(Math.sin(a)*h/Math.sin(b)))+1);
}
void SetHexagon (Polygon hexa, int x, int y, int h)
{
double a;
for (int i=0; i < 7; i++)
{
a = Math.PI / 3.0 * i;
hexa.addPoint((int)(Math.round(x + Math.sin(a) * h)),
(int)(Math.round(y + Math.cos(a) * h)));
}
}
void DrawHexagon (Graphics g, int x, int y, int h)
{
Polygon hexagon = new Polygon();
SetHexagon(hexagon,x,y,h);
g.drawPolygon(hexagon);
}
void DrawOctangle (Graphics g, int x, int y, int h)
{
double a;
int x0,x1, y0,y1;
x0 = x + h;
y0 = y ;
for (int i=1; i < 10; i++)
{
a = Math.PI / 4.0 * i;
x1 = (int)( Math.round(x + Math.sin(a) * h));
y1 = (int)( Math.round(y + Math.cos(a) * h));
g.drawLine(x0,y0,x1,y1);
x0= x1; y0 = y1;
}
}
public void paint(Graphics g)
{
int h = 10;
for (int i=0; i < 10; i++)
{
DrawHexagon(g,180,180,h);
h = NewH(97.5,67.5, h);
DrawOctangle (g, 180, 180, h);
h = NewH(90.0,60.0, h);
}
}
}
我原先寫的 Applet 如下,結果不 work :-(
各位先進和同好知不知到是為什麼嗎?
import java.awt.*;
import java.applet.*;
public class HexOct extends Applet {
int NewH (double a, double b, int h)
{
a = Math.PI / 180.0 * a;
b = Math.PI / 180.0 * b;
return((int)(Math.floor(Math.sin(a) * h / Math.sin(b))));
}
void SetHexagon (Polygon hexa, int x, int y, int h)
{
double a;
for (int i=0; i < 7; i++)
{
a = Math.PI / 3.0 * i;
hexa.addPoint((int)(Math.round(x + Math.sin(a) * h)),
(int)(Math.round(y + Math.cos(a) * h)));
}
}
void DrawOctangle (Graphics g, int x, int y, int h)
{
double a;
int x0,x1, y0,y1;
x0 = x + h;
y0 = y ;
for (int i=1; i < 10; i++)
{
a = Math.PI / 4.0 * i;
x1 = (int)( Math.round(x + Math.sin(a) * h));
y1 = (int)( Math.round(y + Math.cos(a) * h));
g.drawLine(x0,y0,x1,y1);
x0= x1; y0 = y1;
}
}
public void paint(Graphics g)
{
Polygon hexagon = new Polygon();
int h = 10;
for (int i=0; i < 10; i++)
{
SetHexagon(hexagon,180,180,h);
g.drawPolygon(hexagon);
h = NewH(97.5,67.5, h);
DrawOctangle (g, 180, 180, h);
h = NewH(90.0,60.0, h);
}
}
}
對了,我在這兒告訴各位看倌一個小祕密,在小台哥的這篇文章
中所舉的例子中,有一個程式是偷了我的 idea 的。唉!反正是 "天
下程式一大抄" 嘛,而這套句小台哥在他的書中所寫的陳腔爛調嘛,
這叫做『本書情節、故事、人物和對話全係虛構,如有雷同純屬巧合
』,反正全係虛構的,這也不算是拆穿什麼西洋鏡了的吧!
提起他的書,別忘記,他的書名叫做:
《網路劇坊─小台哥笑談網路實作與管理》
台北市維科出版社出版
[ 回首頁 Back to Home |
上一頁 Previous Page |
下一頁 Next Page |
任一頁 Any Page ]
Symon Chang 小台哥 Symon & Associates, CA. U.S.A
symonchang@earthlink.net
Last modified: 10-26-96