Source Codes
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import java.io.*;
class tsdt3d
{
double x,y,z;
public tsdt3d(double x, double y, double z)
{
this.x=x;
this.y=y;
this.z=z;
}
}
class tsdt2d
{
double x,y;
public tsdt2d(double x, double y)
{
this.x=x;
this.y=y;
}
public void nti(double x, double y)
{
this.x=x;
this.y=y;
}
}
class font3D extends JPanel
{
public double skala=1,tX=0,tY=0,tZ=0;
public tsdt3d k3d[];
public tsdt2d k2d[];
public tsdt3d gsmb;
public font3D()
{
setSize(1000,600);
setLayout(null);
setLocation(0,0);
setingxyz();
this.repaint();
}
public void paintComponent(Graphics g)
{
int i,j,k;
t3dt2d();
Graphics2D g2 = (Graphics2D) g;
Paint lama = g2.getPaint();
g2.setColor(Color.white);
g2.fillRect(0,0,getWidth(),getHeight());
g2.setColor(Color.black);
int xc=500;
int yc=300;
//penggabungan antar sisi (6 part 1)
for (i=0;i<68;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[0].x+xc,(int)k2d[0].y+yc,(int)k2d[68].x+xc,(int)k2d[68].y+yc);
//penggabungan antar sisi (6 bolongan part 1)
for (i=69;i<92;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[69].x+xc,(int)k2d[69].y+yc,(int)k2d[92].x+xc,(int)k2d[92].y+yc); //BUAT GABUNG TITIK SATU KE TITIK YANG LAIN
//penggabungan antar sisi (6 part 2)
for (i=93;i<161;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[93].x+xc,(int)k2d[93].y+yc,(int)k2d[161].x+xc,(int)k2d[161].y+yc);
//penggabungan antar sisi (6 bolongan part 2)
for (i=162;i<185;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[162].x+xc,(int)k2d[162].y+yc,(int)k2d[185].x+xc,(int)k2d[185].y+yc);
//penggabungan agar menjadi objek 3d angka 6
for (i=0;i<92;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+93].x+xc,(int)k2d[i+93].y+yc);
}
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+93].x+xc,(int)k2d[i+93].y+yc);
//penggabungan antar sisi (4 part 1)
for (i=186;i<196;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[186].x+xc,(int)k2d[186].y+yc,(int)k2d[196].x+xc,(int)k2d[196].y+yc);
//penggabungan antar sisi (4 bolongan part 1)
for (i=197;i<199;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[197].x+xc,(int)k2d[197].y+yc,(int)k2d[199].x+xc,(int)k2d[199].y+yc);
//penggabungan antar sisi (4 part 2)
for (i=200;i<210;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[200].x+xc,(int)k2d[200].y+yc,(int)k2d[210].x+xc,(int)k2d[210].y+yc);
//penggabungan antar sisi (4 bolongan part 2)
for (i=211;i<213;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[211].x+xc,(int)k2d[211].y+yc,(int)k2d[213].x+xc,(int)k2d[213].y+yc);
//penggabungan agar menjadi objek 3d angka 6
for (i=186;i<200;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+14].x+xc,(int)k2d[i+14].y+yc);
}
//penggabungan antar sisi (9 part 1)
for (i=214;i<287;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[214].x+xc,(int)k2d[214].y+yc,(int)k2d[287].x+xc,(int)k2d[287].y+yc);
//penggabungan antar sisi (9 bolongan part 1)
for (i=288;i<320;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[288].x+xc,(int)k2d[288].y+yc,(int)k2d[320].x+xc,(int)k2d[320].y+yc);
//penggabungan antar sisi (9 part 2)
for (i=321;i<394;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[321].x+xc,(int)k2d[321].y+yc,(int)k2d[394].x+xc,(int)k2d[394].y+yc);
//penggabungan antar sisi (9 bolongan part 2)
for (i=395;i<427;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[395].x+xc,(int)k2d[395].y+yc,(int)k2d[427].x+xc,(int)k2d[427].y+yc);
//penggabungan agar menjadi objek 3d angka 9
for (i=214;i<320;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+107].x+xc,(int)k2d[i+107].y+yc);
}
//penggabungan antar sisi (4 edisi 2 part 1)
for (i=428;i<438;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[428].x+xc,(int)k2d[428].y+yc,(int)k2d[438].x+xc,(int)k2d[438].y+yc);
//penggabungan antar sisi (4 edisi 2 bolongan part 1)
for (i=439;i<441;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[439].x+xc,(int)k2d[439].y+yc,(int)k2d[441].x+xc,(int)k2d[441].y+yc);
//penggabungan antar sisi (4 edisi 1 part 2)
for (i=442;i<452;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[442].x+xc,(int)k2d[442].y+yc,(int)k2d[452].x+xc,(int)k2d[452].y+yc);
//penggabungan antar sisi (4 edisi 1 bolongan part 2)
for (i=453;i<455;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+1].x+xc,(int)k2d[i+1].y+yc);
}
g2.drawLine((int)k2d[453].x+xc,(int)k2d[453].y+yc,(int)k2d[455].x+xc,(int)k2d[455].y+yc);
//penggabungan agar menjadi objek 3d angka 4 edisi 1
for (i=428;i<441;i++)
{
g2.drawLine((int)k2d[i].x+xc,(int)k2d[i].y+yc,(int)k2d[i+14].x+xc,(int)k2d[i+14].y+yc);
}
}
public void setingxyz()
{
int i,j;
k3d = new tsdt3d[456];
// 6 part 1
k3d [0] = new tsdt3d(35,-25,5);
k3d [1] = new tsdt3d(34,-28,5);
k3d [2] = new tsdt3d(32,-33,5);
k3d [3] = new tsdt3d(31,-36,5);
k3d [4] = new tsdt3d(30,-38,5);
k3d [5] = new tsdt3d(29,-40,5);
k3d [6] = new tsdt3d(26,-42,5);
k3d [7] = new tsdt3d(23,-44,5);
k3d [8] = new tsdt3d(20,-44,5);
k3d [9] = new tsdt3d(16,-43,5);
k3d [10] = new tsdt3d(14,-42,5);
k3d [11] = new tsdt3d(12,-40,5);
k3d [12] = new tsdt3d(11,-38,5);
k3d [13] = new tsdt3d(10,-36,5);
k3d [14] = new tsdt3d(8,-32,5);
k3d [15] = new tsdt3d(7,-30,5);
k3d [16] = new tsdt3d(6,-26,5);
k3d [17] = new tsdt3d(5,-22,5);
k3d [18] = new tsdt3d(4,-14,5);
k3d [19] = new tsdt3d(3,-6,5);
k3d [20] = new tsdt3d(3,0,5);
k3d [21] = new tsdt3d(3,8,5);
k3d [22] = new tsdt3d(3,12,5);
k3d [23] = new tsdt3d(4,24,5);
k3d [24] = new tsdt3d(5,30,5);
k3d [25] = new tsdt3d(7,36,5);
k3d [26] = new tsdt3d(9,41,5);
k3d [27] = new tsdt3d(12,45,5);
k3d [28] = new tsdt3d(14,47,5);
k3d [29] = new tsdt3d(16,48,5);
k3d [30] = new tsdt3d(19,49,5);
k3d [31] = new tsdt3d(22,48,5);
k3d [32] = new tsdt3d(25,47,5);
k3d [33] = new tsdt3d(27,45,5);
k3d [34] = new tsdt3d(29,42,5);
k3d [35] = new tsdt3d(31,38,5);
k3d [36] = new tsdt3d(33,32,5);
k3d [37] = new tsdt3d(34,26,5);
k3d [38] = new tsdt3d(35,17,5);
k3d [39] = new tsdt3d(34,8,5);
k3d [40] = new tsdt3d(33,4,5);
k3d [41] = new tsdt3d(32,0,5);
k3d [42] = new tsdt3d(30,-5,5);
k3d [43] = new tsdt3d(28,-8,5);
k3d [44] = new tsdt3d(26,-10,5);
k3d [45] = new tsdt3d(24,-11,5);
k3d [46] = new tsdt3d(21,-12,5);
k3d [47] = new tsdt3d(17,-11,5);
k3d [48] = new tsdt3d(16,-10,5);
k3d [49] = new tsdt3d(15,-9,5);
k3d [50] = new tsdt3d(12,-6,5);
k3d [51] = new tsdt3d(10,-2,5);
k3d [52] = new tsdt3d(9,2,5);
k3d [53] = new tsdt3d(8,6,5);
k3d [54] = new tsdt3d(8,0,5);
k3d [55] = new tsdt3d(8,-4,5);
k3d [56] = new tsdt3d(8,-8,5);
k3d [57] = new tsdt3d(9,-16,5);
k3d [58] = new tsdt3d(10,-22,5);
k3d [59] = new tsdt3d(11,-25,5);
k3d [60] = new tsdt3d(12,-28,5);
k3d [61] = new tsdt3d(14,-32,5);
k3d [62] = new tsdt3d(16,-34,5);
k3d [63] = new tsdt3d(18,-35,5);
k3d [64] = new tsdt3d(22,-35,5);
k3d [65] = new tsdt3d(24,-34,5);
k3d [66] = new tsdt3d(26,-32,5);
k3d [67] = new tsdt3d(28,-28,5);
k3d [68] = new tsdt3d(29,-22,5);
//6 dalam
k3d [69] = new tsdt3d(20,-3,5);
k3d [70] = new tsdt3d(17,-2,5);
k3d [71] = new tsdt3d(15,0,5);
k3d [72] = new tsdt3d(13,2,5);
k3d [73] = new tsdt3d(11,6,5);
k3d [74] = new tsdt3d(10,10,5);
k3d [75] = new tsdt3d(9,16,5);
k3d [76] = new tsdt3d(9,21,5);
k3d [77] = new tsdt3d(10,28,5);
k3d [78] = new tsdt3d(11,32,5);
k3d [79] = new tsdt3d(14,37,5);
k3d [80] = new tsdt3d(16,39,5);
k3d [81] = new tsdt3d(19,40,5);
k3d [82] = new tsdt3d(22,39,5);
k3d [83] = new tsdt3d(25,36,5);
k3d [84] = new tsdt3d(27,32,5);
k3d [85] = new tsdt3d(28,28,5);
k3d [86] = new tsdt3d(29,24,5);
k3d [87] = new tsdt3d(29,18,5);
k3d [88] = new tsdt3d(29,12,5);
k3d [89] = new tsdt3d(28,7,5);
k3d [90] = new tsdt3d(27,4,5);
k3d [91] = new tsdt3d(25,1,5);
k3d [92] = new tsdt3d(23,-1,5);
//6 part 2
k3d [93] = new tsdt3d(35,-25,-5);
k3d [94] = new tsdt3d(34,-28,-5);
k3d [95] = new tsdt3d(32,-33,-5);
k3d [96] = new tsdt3d(31,-36,-5);
k3d [97] = new tsdt3d(30,-38,-5);
k3d [98] = new tsdt3d(29,-40,-5);
k3d [99] = new tsdt3d(26,-42,-5);
k3d [100] = new tsdt3d(23,-44,-5);
k3d [101] = new tsdt3d(20,-44,-5);
k3d [102] = new tsdt3d(16,-43,-5);
k3d [103] = new tsdt3d(14,-42,-5);
k3d [104] = new tsdt3d(12,-40,-5);
k3d [105] = new tsdt3d(11,-38,-5);
k3d [106] = new tsdt3d(10,-36,-5);
k3d [107] = new tsdt3d(8,-32,-5);
k3d [108] = new tsdt3d(7,-30,-5);
k3d [109] = new tsdt3d(6,-26,-5);
k3d [110] = new tsdt3d(5,-22,-5);
k3d [111] = new tsdt3d(4,-14,-5);
k3d [112] = new tsdt3d(3,-6,-5);
k3d [113] = new tsdt3d(3,0,-5);
k3d [114] = new tsdt3d(3,8,-5);
k3d [115] = new tsdt3d(3,12,-5);
k3d [116] = new tsdt3d(4,24,-5);
k3d [117] = new tsdt3d(5,30,-5);
k3d [118] = new tsdt3d(7,36,-5);
k3d [119] = new tsdt3d(9,41,-5);
k3d [120] = new tsdt3d(12,45,-5);
k3d [121] = new tsdt3d(14,47,-5);
k3d [122] = new tsdt3d(16,48,-5);
k3d [123] = new tsdt3d(19,49,-5);
k3d [124] = new tsdt3d(22,48,-5);
k3d [125] = new tsdt3d(25,47,-5);
k3d [126] = new tsdt3d(27,45,-5);
k3d [127] = new tsdt3d(29,42,-5);
k3d [128] = new tsdt3d(31,38,-5);
k3d [129] = new tsdt3d(33,32,-5);
k3d [130] = new tsdt3d(34,26,-5);
k3d [131] = new tsdt3d(35,17,-5);
k3d [132] = new tsdt3d(34,8,-5);
k3d [133] = new tsdt3d(33,4,-5);
k3d [134] = new tsdt3d(32,0,-5);
k3d [135] = new tsdt3d(30,-5,-5);
k3d [136] = new tsdt3d(28,-8,-5);
k3d [137] = new tsdt3d(26,-10,-5);
k3d [138] = new tsdt3d(24,-11,-5);
k3d [139] = new tsdt3d(21,-12,-5);
k3d [140] = new tsdt3d(17,-11,-5);
k3d [141] = new tsdt3d(16,-10,-5);
k3d [142] = new tsdt3d(15,-9,-5);
k3d [143] = new tsdt3d(12,-6,-5);
k3d [144] = new tsdt3d(10,-2,-5);
k3d [145] = new tsdt3d(9,2,-5);
k3d [146] = new tsdt3d(8,6,-5);
k3d [147] = new tsdt3d(8,0,-5);
k3d [148] = new tsdt3d(8,-4,-5);
k3d [149] = new tsdt3d(8,-8,-5);
k3d [150] = new tsdt3d(9,-16,-5);
k3d [151] = new tsdt3d(10,-22,-5);
k3d [152] = new tsdt3d(11,-25,-5);
k3d [153] = new tsdt3d(12,-28,-5);
k3d [154] = new tsdt3d(14,-32,-5);
k3d [155] = new tsdt3d(16,-34,-5);
k3d [156] = new tsdt3d(18,-35,-5);
k3d [157] = new tsdt3d(22,-35,-5);
k3d [158] = new tsdt3d(24,-34,-5);
k3d [159] = new tsdt3d(26,-32,-5);
k3d [160] = new tsdt3d(28,-28,-5);
k3d [161] = new tsdt3d(29,-22,-5);
k3d [162] = new tsdt3d(20,-3,-5);
k3d [163] = new tsdt3d(17,-2,-5);
k3d [164] = new tsdt3d(15,0,-5);
k3d [165] = new tsdt3d(13,2,-5);
k3d [166] = new tsdt3d(11,6,-5);
k3d [167] = new tsdt3d(10,10,-5);
k3d [168] = new tsdt3d(9,16,-5);
k3d [169] = new tsdt3d(9,21,-5);
k3d [170] = new tsdt3d(10,28,-5);
k3d [171] = new tsdt3d(11,32,-5);
k3d [172] = new tsdt3d(14,37,-5);
k3d [173] = new tsdt3d(16,39,-5);
k3d [174] = new tsdt3d(19,40,-5);
k3d [175] = new tsdt3d(22,39,-5);
k3d [176] = new tsdt3d(25,36,-5);
k3d [177] = new tsdt3d(27,32,-5);
k3d [178] = new tsdt3d(28,28,-5);
k3d [179] = new tsdt3d(29,24,-5);
k3d [180] = new tsdt3d(29,18,-5);
k3d [181] = new tsdt3d(29,12,-5);
k3d [182] = new tsdt3d(28,7,-5);
k3d [183] = new tsdt3d(27,4,-5);
k3d [184] = new tsdt3d(25,1,-5);
k3d [185] = new tsdt3d(23,-1,-5);
//4 kedua part 1
k3d [186] = new tsdt3d(58,-44,5);
k3d [187] = new tsdt3d(39,18,5);
k3d [188] = new tsdt3d(39,26,5);
k3d [189] = new tsdt3d(60,26,5);
k3d [190] = new tsdt3d(60,47,5);
k3d [191] = new tsdt3d(65,47,5);
k3d [192] = new tsdt3d(65,26,5);
k3d [193] = new tsdt3d(72,26,5);
k3d [194] = new tsdt3d(72,17,5);
k3d [195] = new tsdt3d(65,17,5);
k3d [196] = new tsdt3d(65,-44,5);
//lubang
k3d [197] = new tsdt3d(60,-36,5);
k3d [198] = new tsdt3d(44.5,17,5);
k3d [199] = new tsdt3d(60,17,5);
//4 kedua part 2
k3d [200] = new tsdt3d(58,-44,-5);
k3d [201] = new tsdt3d(39,18,-5);
k3d [202] = new tsdt3d(39,26,-5);
k3d [203] = new tsdt3d(60,26,-5);
k3d [204] = new tsdt3d(60,47,-5);
k3d [205] = new tsdt3d(65,47,-5);
k3d [206] = new tsdt3d(65,26,-5);
k3d [207] = new tsdt3d(72,26,-5);
k3d [208] = new tsdt3d(72,17,-5);
k3d [209] = new tsdt3d(65,17,-5);
k3d [210] = new tsdt3d(65,-44,-5);
//lubang
k3d [211] = new tsdt3d(60,-36,-5);
k3d [212] = new tsdt3d(44.5,17,-5);
k3d [213] = new tsdt3d(60,17,-5);
//9 part 1
k3d [214] = new tsdt3d(-33.9,31,5);
k3d [215] = new tsdt3d(-32,36,5);
k3d [216] = new tsdt3d(-30.8,39,5);
k3d [217] = new tsdt3d(-29.8,41,5);
k3d [218] = new tsdt3d(-28,44,5);
k3d [219] = new tsdt3d(-25,47,5);
k3d [220] = new tsdt3d(-23,48,5);
k3d [221] = new tsdt3d(-20,48.5,5);
k3d [222] = new tsdt3d(-18,48.3,5);
k3d [223] = new tsdt3d(-16,48,5);
k3d [224] = new tsdt3d(-13,45,5);
k3d [225] = new tsdt3d(-10,42,5);
k3d [226] = new tsdt3d(-8,38,5);
k3d [227] = new tsdt3d(-6,32,5);
k3d [228] = new tsdt3d(-5,28,5);
k3d [229] = new tsdt3d(-4,23,5);
k3d [230] = new tsdt3d(-3,14,5);
k3d [231] = new tsdt3d(-2.2,6,5);
k3d [232] = new tsdt3d(-2,0,5);
k3d [233] = new tsdt3d(-2.2,-6,5);
k3d [234] = new tsdt3d(-2.3,-10,5);
k3d [235] = new tsdt3d(-3,-16,5);
k3d [236] = new tsdt3d(-4,-22,5);
k3d [237] = new tsdt3d(-6,-30,5);
k3d [238] = new tsdt3d(-8,-36,5);
k3d [239] = new tsdt3d(-10,-39,5);
k3d [240] = new tsdt3d(-11,-41,5);
k3d [241] = new tsdt3d(-14,-43,5);
k3d [242] = new tsdt3d(-16,-43.8,5);
k3d [243] = new tsdt3d(-18,-44,5);
k3d [244] = new tsdt3d(-20,-44,5);
k3d [245] = new tsdt3d(-23,-43,5);
k3d [246] = new tsdt3d(-26,-41,5);
k3d [247] = new tsdt3d(-28,-38,5);
k3d [248] = new tsdt3d(-30,-35,5);
k3d [249] = new tsdt3d(-31,-32,5);
k3d [250] = new tsdt3d(-32,-29,5);
k3d [251] = new tsdt3d(-33,-26,5);
k3d [252] = new tsdt3d(-34,-20,5);
k3d [253] = new tsdt3d(-34.2,-14,5);
k3d [254] = new tsdt3d(-34.3,-10,5);
k3d [255] = new tsdt3d(-34,-6,5);
k3d [256] = new tsdt3d(-33,0,5);
k3d [257] = new tsdt3d(-32,3,5);
k3d [258] = new tsdt3d(-31,6,5);
k3d [259] = new tsdt3d(-30,8,5);
k3d [260] = new tsdt3d(-29,10,5);
k3d [261] = new tsdt3d(-27.8,12,5);
k3d [262] = new tsdt3d(-26,14,5);
k3d [263] = new tsdt3d(-24,15.5,5);
k3d [264] = new tsdt3d(-22,16,5);
k3d [265] = new tsdt3d(-20,16.3,5);
k3d [266] = new tsdt3d(-18,16,5);
k3d [267] = new tsdt3d(-16,15,5);
k3d [268] = new tsdt3d(-14.5,14,5);
k3d [269] = new tsdt3d(-13,12,5);
k3d [270] = new tsdt3d(-11,9,5);
k3d [271] = new tsdt3d(-9,4,5);
k3d [272] = new tsdt3d(-7.8,-1.8,5);
k3d [273] = new tsdt3d(-7.8,8,5);
k3d [274] = new tsdt3d(-8,14,5);
k3d [275] = new tsdt3d(-9,22,5);
k3d [276] = new tsdt3d(-10,27,5);
k3d [277] = new tsdt3d(-11,30,5);
k3d [278] = new tsdt3d(-12,33,5);
k3d [279] = new tsdt3d(-13,35,5);
k3d [280] = new tsdt3d(-14.5,37,5);
k3d [281] = new tsdt3d(-17,39,5);
k3d [282] = new tsdt3d(-20,40,5);
k3d [283] = new tsdt3d(-23,39,5);
k3d [284] = new tsdt3d(-24,38,5);
k3d [285] = new tsdt3d(-26,36,5);
k3d [286] = new tsdt3d(-28,31,5);
k3d [287] = new tsdt3d(-29,27.8,5);
//angka 9 dalam
k3d [288] = new tsdt3d(-19,7,5);
k3d [289] = new tsdt3d(-17,6.3,5);
k3d [290] = new tsdt3d(-16,5.8,5);
k3d [291] = new tsdt3d(-13,3,5);
k3d [292] = new tsdt3d(-11.8,0,5);
k3d [293] = new tsdt3d(-10,-4,5);
k3d [294] = new tsdt3d(-9,-8,5);
k3d [295] = new tsdt3d(-8.5,-12,5);
k3d [296] = new tsdt3d(-8.6,-16,5);
k3d [297] = new tsdt3d(-8.7,-20,5);
k3d [298] = new tsdt3d(-9,-22,5);
k3d [299] = new tsdt3d(-10,-26,5);
k3d [300] = new tsdt3d(-11,-29,5);
k3d [301] = new tsdt3d(-13,-32,2);
k3d [302] = new tsdt3d(-14,-33.5,5);
k3d [303] = new tsdt3d(-16,-34.5,5);
k3d [304] = new tsdt3d(-19,-35.5,5);
k3d [305] = new tsdt3d(-21.2,-35,5);
k3d [306] = new tsdt3d(-23.8,-33,5);
k3d [307] = new tsdt3d(-25.4,-28,5);
k3d [308] = new tsdt3d(-27,-26,5);
k3d [309] = new tsdt3d(-28,-22,5);
k3d [310] = new tsdt3d(-28.5,-18,5);
k3d [311] = new tsdt3d(-28.8,-14,5);
k3d [312] = new tsdt3d(-28.5,-10,5);
k3d [313] = new tsdt3d(-28.4,-8,5);
k3d [314] = new tsdt3d(-28,-4.8,5);
k3d [315] = new tsdt3d(-27,-1,5);
k3d [316] = new tsdt3d(-26,1,5);
k3d [317] = new tsdt3d(-25,3,5);
k3d [318] = new tsdt3d(-23.8,5,5);
k3d [319] = new tsdt3d(-22,6,5);
k3d [320] = new tsdt3d(-21,6.8,5);
//9 part 2
k3d [321] = new tsdt3d(-33.9,31,-5);
k3d [322] = new tsdt3d(-32,36,-5);
k3d [323] = new tsdt3d(-30.8,39,-5);
k3d [324] = new tsdt3d(-29.8,41,-5);
k3d [325] = new tsdt3d(-28,44,-5);
k3d [326] = new tsdt3d(-25,47,-5);
k3d [327] = new tsdt3d(-23,48,-5);
k3d [328] = new tsdt3d(-20,48.5,-5);
k3d [329] = new tsdt3d(-18,48.3,-5);
k3d [330] = new tsdt3d(-16,48,-5);
k3d [331] = new tsdt3d(-13,45,-5);
k3d [332] = new tsdt3d(-10,42,-5);
k3d [333] = new tsdt3d(-8,38,-5);
k3d [334] = new tsdt3d(-6,32,-5);
k3d [335] = new tsdt3d(-5,28,-5);
k3d [336] = new tsdt3d(-4,23,-5);
k3d [337] = new tsdt3d(-3,14,-5);
k3d [338] = new tsdt3d(-2.2,6,-5);
k3d [339] = new tsdt3d(-2,0,-5);
k3d [340] = new tsdt3d(-2.2,-6,-5);
k3d [341] = new tsdt3d(-2.3,-10,-5);
k3d [342] = new tsdt3d(-3,-16,-5);
k3d [343] = new tsdt3d(-4,-22,-5);
k3d [344] = new tsdt3d(-6,-30,-5);
k3d [345] = new tsdt3d(-8,-36,-5);
k3d [346] = new tsdt3d(-10,-39,-5);
k3d [347] = new tsdt3d(-11,-41,-5);
k3d [348] = new tsdt3d(-14,-43,-5);
k3d [349] = new tsdt3d(-16,-43.8,-5);
k3d [350] = new tsdt3d(-18,-44,-5);
k3d [351] = new tsdt3d(-20,-44,-5);
k3d [352] = new tsdt3d(-23,-43,-5);
k3d [353] = new tsdt3d(-26,-41,-5);
k3d [354] = new tsdt3d(-28,-38,-5);
k3d [355] = new tsdt3d(-30,-35,-5);
k3d [356] = new tsdt3d(-31,-32,-5);
k3d [357] = new tsdt3d(-32,-29,-5);
k3d [358] = new tsdt3d(-33,-26,-5);
k3d [359] = new tsdt3d(-34,-20,-5);
k3d [360] = new tsdt3d(-34.2,-14,-5);
k3d [361] = new tsdt3d(-34.3,-10,-5);
k3d [362] = new tsdt3d(-34,-6,-5);
k3d [363] = new tsdt3d(-33,0,-5);
k3d [364] = new tsdt3d(-32,3,-5);
k3d [365] = new tsdt3d(-31,6,-5);
k3d [366] = new tsdt3d(-30,8,-5);
k3d [367] = new tsdt3d(-29,10,-5);
k3d [368] = new tsdt3d(-27.8,12,-5);
k3d [369] = new tsdt3d(-26,14,-5);
k3d [370] = new tsdt3d(-24,15.5,-5);
k3d [371] = new tsdt3d(-22,16,-5);
k3d [372] = new tsdt3d(-20,16.3,-5);
k3d [373] = new tsdt3d(-18,16,-5);
k3d [374] = new tsdt3d(-16,15,-5);
k3d [375] = new tsdt3d(-14.5,14,-5);
k3d [376] = new tsdt3d(-13,12,-5);
k3d [377] = new tsdt3d(-11,9,-5);
k3d [378] = new tsdt3d(-9,4,-5);
k3d [379] = new tsdt3d(-7.8,-1.8,-5);
k3d [380] = new tsdt3d(-7.8,8,-5);
k3d [381] = new tsdt3d(-8,14,-5);
k3d [382] = new tsdt3d(-9,22,-5);
k3d [383] = new tsdt3d(-10,27,-5);
k3d [384] = new tsdt3d(-11,30,-5);
k3d [385] = new tsdt3d(-12,33,-5);
k3d [386] = new tsdt3d(-13,35,-5);
k3d [387] = new tsdt3d(-14.5,37,-5);
k3d [388] = new tsdt3d(-17,39,-5);
k3d [389] = new tsdt3d(-20,40,-5);
k3d [390] = new tsdt3d(-23,39,-5);
k3d [391] = new tsdt3d(-24,38,-5);
k3d [392] = new tsdt3d(-26,36,-5);
k3d [393] = new tsdt3d(-28,31,-5);
k3d [394] = new tsdt3d(-29,27.8,-5);
//angka 9 dalam
k3d [395] = new tsdt3d(-19,7,-5);
k3d [396] = new tsdt3d(-17,6.3,-5);
k3d [397] = new tsdt3d(-16,5.8,-5);
k3d [398] = new tsdt3d(-13,3,-5);
k3d [399] = new tsdt3d(-11.8,0,-5);
k3d [400] = new tsdt3d(-10,-4,-5);
k3d [401] = new tsdt3d(-9,-8,-5);
k3d [402] = new tsdt3d(-8.5,-12,-5);
k3d [403] = new tsdt3d(-8.6,-16,-5);
k3d [404] = new tsdt3d(-8.7,-20,-5);
k3d [405] = new tsdt3d(-9,-22,-5);
k3d [406] = new tsdt3d(-10,-26,-5);
k3d [407] = new tsdt3d(-11,-29,-5);
k3d [408] = new tsdt3d(-13,-32,-5);
k3d [409] = new tsdt3d(-14,-33.5,-5);
k3d [410] = new tsdt3d(-16,-34.5,-5);
k3d [411] = new tsdt3d(-19,-35.5,-5);
k3d [412] = new tsdt3d(-21.2,-35,-5);
k3d [413] = new tsdt3d(-23.8,-33,-5);
k3d [414] = new tsdt3d(-25.4,-28,-5);
k3d [415] = new tsdt3d(-27,-26,-5);
k3d [416] = new tsdt3d(-28,-22,-5);
k3d [417] = new tsdt3d(-28.5,-18,-5);
k3d [418] = new tsdt3d(-28.8,-14,-5);
k3d [419] = new tsdt3d(-28.5,-10,-5);
k3d [420] = new tsdt3d(-28.4,-8,-5);
k3d [421] = new tsdt3d(-28,-4.8,-5);
k3d [422] = new tsdt3d(-27,-1,-5);
k3d [423] = new tsdt3d(-26,1,-5);
k3d [424] = new tsdt3d(-25,3,-5);
k3d [425] = new tsdt3d(-23.8,5,-5);
k3d [426] = new tsdt3d(-22,6,-5);
k3d [427] = new tsdt3d(-21,6.8,-5);
//4 yang pertama part 1
k3d [428] = new tsdt3d(-52,-45,5);
k3d [429] = new tsdt3d(-71,18,5);
k3d [430] = new tsdt3d(-71,26,5);
k3d [431] = new tsdt3d(-50,26,5);
k3d [432] = new tsdt3d(-50,47,5);
k3d [433] = new tsdt3d(-45,47,5);
k3d [434] = new tsdt3d(-45,26,5);
k3d [435] = new tsdt3d(-38,26,5);
k3d [436] = new tsdt3d(-38,17,5);
k3d [437] = new tsdt3d(-45,17,5);
k3d [438] = new tsdt3d(-45,-45,5);
//luubang
k3d [439] = new tsdt3d(-50,-36,5);
k3d [440] = new tsdt3d(-66,17,5);
k3d [441] = new tsdt3d(-50,17,5);
//4 yang pertama part 2
k3d [442] = new tsdt3d(-52,-45,-5);
k3d [443] = new tsdt3d(-71,18,-5);
k3d [444] = new tsdt3d(-71,26,-5);
k3d [445] = new tsdt3d(-50,26,-5);
k3d [446] = new tsdt3d(-50,47,-5);
k3d [447] = new tsdt3d(-45,47,-5);
k3d [448] = new tsdt3d(-45,26,-5);
k3d [449] = new tsdt3d(-38,26,-5);
k3d [450] = new tsdt3d(-38,17,-5);
k3d [451] = new tsdt3d(-45,17,-5);
k3d [452] = new tsdt3d(-45,-45,-5);
//lubang
k3d [453] = new tsdt3d(-50,-36,-5);
k3d [454] = new tsdt3d(-66,17,-5);
k3d [455] = new tsdt3d(-50,17,-5);
gsmb = new tsdt3d(0,0,0);
k2d = new tsdt2d[1000];
for(i=0;i<k2d.length;i++)
{
k2d[i]=new tsdt2d(0,0);
}
}
public void t3dt2d()
{
double sx = Math.sin(gsmb.x);
double cx = Math.cos(gsmb.x);
double sy = Math.sin(gsmb.y);
double cy = Math.cos(gsmb.y);
double sz = Math.sin(gsmb.z);
double cz = Math.cos(gsmb.z);
double x,y,z, xy,xz, yx,yz, zx,zy, scaleFactor,focalLength=0,zmX,zmY ;
scaleFactor = 0;
focalLength = 300;
for(int i=0;i<k3d.length;i++){
x = k3d[i].x;
y = k3d[i].y;
z = k3d[i].z;
xy = cx*y - sx*z;
xz = sx*y + cx*z;
yz = cy*xz - sy*x;
yx = sy*xz + cy*x;
zx = cz*yx - sz*xy;
zy = sz*yx + cz*xy;
scaleFactor = focalLength/(focalLength + yz);
x = zx*scaleFactor;
y = zy*scaleFactor;
z = yz;
zmX = skala*x;
zmY = skala*y;
k2d[i].nti(zmX+tX, zmY+tY);
}
}
}
class utama extends JFrame implements ActionListener
{
font3D x1 = new font3D();
JButton br = new JButton("searah");
JButton brm = new JButton("melawan");
JButton br1 = new JButton("searah");
JButton br1m = new JButton("melawan");
JButton br2 = new JButton("searah");
JButton br2m = new JButton("melawan");
JButton br3 = new JButton("-->");
JButton br4 = new JButton("<--");
JButton br5 = new JButton("^");
JButton br6 = new JButton("v");
JButton br7 = new JButton("1x");
JButton br8 = new JButton("2x");
JButton br9 = new JButton("3x");
JButton br10 = new JButton("4x");
JButton br11 = new JButton("5x");
JLabel lbl = new JLabel("perbesar");
JLabel lbl1 = new JLabel("perkecil");
JLabel lbl2 = new JLabel("X");
JLabel lbl3 = new JLabel("Y");
JLabel lbl4 = new JLabel("Z");
JButton br12 = new JButton("1x");
JButton br13 = new JButton("2x");
JButton br14 = new JButton("3x");
JButton br15 = new JButton("4x");
JButton br16 = new JButton("5x");
JButton br19 = new JButton("default");
public utama()
{
setSize(1000,760);
setLocation(300,10);
setLayout(null);
x1.setLocation(0,0);
br.setLocation(30,630);
br.setSize(100,20);
brm.setLocation(30,660);
brm.setSize(100,20);
br1.setLocation(140,630);
br1.setSize(100,20);
br1m.setLocation(140,660);
br1m.setSize(100,20);
br2.setLocation(250,630);
br2.setSize(100,20);
br2m.setLocation(250,660);
br2m.setSize(100,20);
br3.setLocation(470,640);
br3.setSize(100,20);
br4.setLocation(370,640);
br4.setSize(100,20);
br7.setLocation(580,640);
br7.setSize(50,20);
br8.setLocation(640,640);
br8.setSize(50,20);
br9.setLocation(700,640);
br9.setSize(50,20);
br10.setLocation(760,640);
br10.setSize(50,20);
br11.setLocation(820,640);
br11.setSize(50,20);
lbl.setLocation(700,615);
lbl.setSize(100,20);
lbl1.setLocation(700,665);
lbl1.setSize(100,20);
lbl2.setLocation(80,610);
lbl2.setSize(100,20);
lbl3.setLocation(190,610);
lbl3.setSize(100,20);
lbl4.setLocation(290,610);
lbl4.setSize(100,20);
br5.setLocation(420,615);
br5.setSize(100,20);
br6.setLocation(420,665);
br6.setSize(100,20);
br12.setLocation(580,685);
br12.setSize(50,20);
br13.setLocation(640,685);
br13.setSize(50,20);
br14.setLocation(700,685);
br14.setSize(50,20);
br15.setLocation(760,685);
br15.setSize(50,20);
br16.setLocation(820,685);
br16.setSize(50,20);
br19.setLocation(890,660);
br19.setSize(50,20);
br.addActionListener(this);
brm.addActionListener(this);
br1.addActionListener(this);
br1m.addActionListener(this);
br3.addActionListener(this);
br4.addActionListener(this);
br5.addActionListener(this);
br6.addActionListener(this);
br7.addActionListener(this);
br8.addActionListener(this);
br2.addActionListener(this);
br2m.addActionListener(this);
br9.addActionListener(this);
br10.addActionListener(this);
br11.addActionListener(this);
br12.addActionListener(this);
br13.addActionListener(this);
br14.addActionListener(this);
br15.addActionListener(this);
br16.addActionListener(this);
br19.addActionListener(this);
add(x1);
add(br);
add(brm);
add(br1);
add(br1m);
add(br3);
add(br4);
add(br5);
add(br6);
add(br7);
add(br8);
add(br9);
add(br10);
add(br11);
add(br12);
add(br13);
add(br14);
add(br15);
add(br16);
add(br19);
add(br2);
add(br2m);
add(lbl);
add(lbl1);
add(lbl2);
add(lbl3);
add(lbl4);
show();
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource().equals(br))
{
x1.gsmb.x = x1.gsmb.x+0.05;
x1.repaint();
}
if(ae.getSource().equals(brm))
{
x1.gsmb.x = x1.gsmb.x-0.05;
x1.repaint();
}
if(ae.getSource().equals(br1m))
{
x1.gsmb.y = x1.gsmb.y-0.05;
x1.repaint();
}
if(ae.getSource().equals(br1))
{
x1.gsmb.y = x1.gsmb.y+0.05;
x1.repaint();
}
if(ae.getSource().equals(br2))
{
x1.gsmb.z = x1.gsmb.z+0.05;
x1.repaint();
}
if(ae.getSource().equals(br2m))
{
x1.gsmb.z = x1.gsmb.z-0.05;
x1.repaint();
}
if(ae.getSource().equals(br3))
{
x1.tX=x1.tX+5;
x1.repaint();
}
if(ae.getSource().equals(br4))
{
x1.tX=x1.tX-5;
x1.repaint();
}
if(ae.getSource().equals(br5))
{
x1.tY=x1.tY-5;
x1.repaint();
}
if(ae.getSource().equals(br6))
{
x1.tY=x1.tY+5;
x1.repaint();
}
if(ae.getSource().equals(br7))
{
x1.skala=x1.skala*1.05;
x1.repaint();
}
if(ae.getSource().equals(br8))
{
x1.skala=x1.skala*2.05;
x1.repaint();
}
if(ae.getSource().equals(br9))
{
x1.skala=x1.skala*3.05;
x1.repaint();
}
if(ae.getSource().equals(br10))
{
x1.skala=x1.skala*4.05;
x1.repaint();
}
if(ae.getSource().equals(br11))
{
x1.skala=x1.skala*5.05;
x1.repaint();
}
if(ae.getSource().equals(br12))
{
x1.skala=x1.skala/1.05;
x1.repaint();
}
if(ae.getSource().equals(br13))
{
x1.skala=x1.skala/2.05;
x1.repaint();
}
if(ae.getSource().equals(br14))
{
x1.skala=x1.skala/3.05;
x1.repaint();
}
if(ae.getSource().equals(br15))
{
x1.skala=x1.skala/4.05;
x1.repaint();
}
if(ae.getSource().equals(br16))
{
x1.skala=x1.skala/5.05;
x1.repaint();
}
if(ae.getSource().equals(br19))
{
x1.tX=0;
x1.tY=0;
x1.gsmb.x=0;
x1.gsmb.y=0;
x1.gsmb.z=0;
x1.skala=1;
x1.repaint();
}
}
public static void main(String[] args)
{
utama d = new utama();
}
}
PRINT OUT 

0 comments:
Post a Comment