PORTOFOLIO 7

May 22nd, 2008 by zaki03@cs.its.ac.id

Kali ini kita akan membahas tentang rekonstruksi objek 2 dimensi menjadi 3 dimensi.

Pada portofolio ini kita memerlukan digipts.m dan portofolio7.m untuk membangkitkan image 3 dimensi.

dibawah ini adalh listing stereo.m

function [XYZ, uv1, uv2] = stereo(im1, im2, C1, C2)

fprintf(1, ‘Digitise some points in figure 1\n’);

figure(1)

imshow(im1);

[u1,v1] = digipts;

uv1 = [u1,v1]’;

fprintf(1, ‘Digitise some points in figure 2\n’);

figure(2)

imshow(im2);

[u2,v2] = digipts;

uv2 = [u2,v2]’;

% check if same number of points are selected

if length(u1) ~= length(u2)

fprintf(1, ‘Same number of points not selected\n’);

end

for i = 1:length(u1)

a = [C1(1:2,1:3) - [u1(i)*C1(3,1:3); v1(i)*C1(3,1:3)];

C2(1:2,1:3) - [u2(i)*C2(3,1:3); v2(i)*C2(3,1:3)]];

c = [u1(i) - C1(1,4);

v1(i) - C1(2,4);

u2(i) - C2(1,4);

v2(i) - C2(2,4)];

b(:, i) = a \ c;

end

XYZ = b’;

Dari fungsi diatas akan dihasilkan titik-titik koordinat 3 dimensi dari ketiga bangun ruang (kubus, balok, dan limas), seperti di bawah ini:

XYZ =

-286.2951 157.9628 143.0423

-175.3818 163.1173 142.7176

-175.5998 16.6768 141.1072

-289.0643 13.0795 143.6164

-285.5844 161.7196 8.2758

-287.0630 12.1030 5.9668

-174.9637 14.4183 4.0810

-86.9674 -69.5001 0.6049

-66.2381 -144.2762 121.3230

20.2380 -180.4104 -4.5407

-136.9644 -207.1403 -0.7542

136.7599 -90.1582 62.6987

208.8604 -92.0420 60.2097

206.8196 -158.9134 58.7466

137.3153 -155.6600 59.8104

133.7304 -94.9047 -4.4448

137.0247 -158.4058 -10.0663

205.6730 -162.3611 -10.7847

 

Panjang rusuk untuk balok:

slengths =

144.9110 111.0335 146.4495 113.5492

113.5492 137.0463 112.1391 137.6676

137.6676 149.6418 134.8208 144.9110

112.2506 134.8208 111.0335 137.6676

137.6676 146.4495 137.0463 147.7343

147.7343 112.1391 149.6418 112.2506

dengan sisi-sisinya:

nface =

4 1 2 3 4

4 3 7 6 4

4 6 5 1 4

8 5 1 2 8

8 2 3 7 8

8 7 6 5 8

 

Panjang rusuk untuk limas:

slengths =

143.5062 156.9251 154.3392

143.5062 154.4569 146.4458

154.3392 159.5037 146.4458

156.9251 159.5037 154.4569

dengan sisi-sisinya:

nface =

1 2 3 1

1 2 4 1

1 3 4 1

2 3 4 2

 

Panjang rusuk untuk kubus:

slengths =

65.5678 72.1681 66.9186 69.5886

69.5886 69.6261 68.7659 69.9313

69.9313 63.8345 67.3792 65.5678

75.0216 67.3792 72.1681 69.9313

69.9313 66.9186 69.6261 67.6446

67.6446 68.7659 63.8345 75.0216

dengan sisi-sisinya:

nface =

4 1 2 3 4

4 3 7 6 4

4 6 5 1 4

8 5 1 2 8

8 2 3 7 8

8 7 6 5 8

Untuk mendapatkan Dua view yang berbeda dari rekonstruksi 3D kubus, balok dan limas dan perkiraan titik koordinat 3D yang tersembunyi, dijalankan fungsi di bawah ini:

function portofolio7()

im1 = imread(’stereo1.jpg’ );

im2 = imread(’stereo2.jpg’ );

C1 = [0.6596 -0.7391 -0.0615 363.4235;

-0.1851 -0.1387 -0.9437 342.7417;

0.0005 0.0003 -0.0003 1.0000];

C2 = [0.9234 -0.2221 -0.0257 347.7796;

-0.0741 -0.2278 -0.9168 339.8960;

0.0002 0.0004 -0.0002 1.0000];

pt3D = stereo(im1, im2, C1, C2)

figure(3)

cube(pt3D(1:7,:));

tetrahedron(pt3D(8:11,:));

cube(pt3D(12:18,:));

% label coordinate axes

text(100,0,0,’x’);

text(0,100,0,’y’);

text(0,0,100,’z’);

% draw in a set of coordinate axes

axislength = 100*eye(3);

for i=1:3

line([0, axislength(i,1)], [0, axislength(i,2)], [0, axislength(i,3)]);

end

axis equal; box on; rotate3D on; grid on;

end

function cube(cubepts3D)

% determine hidden vertex

cubepts3D(8, = - cubepts3D(4, + cubepts3D(6, + cubepts3D(2,:);

% define faces from standard numbering

cubefaces = [4 1 2 3

4 3 7 6

4 6 5 1

8 5 1 2

8 2 3 7

8 7 6 5];

% draw ‘patcheds’ from vertice and face matrix

patch(’Faces’,cubefaces,’Vertices’,cubepts3D, ‘FaceColor’, ‘none’)

fprintf(1, ‘Length matrix of face sides\n’);

[slengths, nface] = sidelengths(cubepts3D, cubefaces)

end

function tetrahedron(tetrahedronpts3D)

% define faces from standard numbering

tetrahedronfaces = [1 2 3

1 2 4

1 3 4

2 3 4];

% draw ‘patcheds’ from vertice and face matrix

patch(’Faces’,tetrahedronfaces,’Vertices’,tetrahedronpts3D, ‘FaceColor’, ‘none’)

fprintf(1, ‘Length matrix of face sides\n’);

[slengths, nface] = sidelengths(tetrahedronpts3D, tetrahedronfaces)

end

function [slengths, nface] = sidelengths(pt3D, face)

[rows, cols] = size(face);

nface = [face face(:,1)];

for i=1:cols

for j=1:rows

slengths(j,i) = norm(pt3D(nface(j,i),:)-pt3D(nface(j,i+1),:));

end

end

end

dari fungsi diatas kita akan menentukan kokordinat titik-titik dengan urutan seperti berikut :

st1.jpg

st2.jpg

kita akan mendapatkan rekonstruksi 3 D :

1.jpg

2.jpg

PORTOFOLIO 6

May 22nd, 2008 by zaki03@cs.its.ac.id

Dalam portofolio kali ini dibutuhkan fungsi calibrate.m

berikut ini fungsinya :

% CALIBRATE
%
% Function to perform camera calibration
%
% Usage: C = calibrate(im, XYZ, uv)
%
% Where: im - is the image of the calibration target.
% XYZ - is a n x 3 array of XYZ coordinates
% of the calibration target points.
% uv - is a 2 x n array of the image coordinates
% of the calibration target points.
% C - is the 3 x 4 camera calibration matrix.
%
% This function plots the uv coordinates onto the image of
% the calibration target. It also projects the XYZ coordinates
% back into image coordinates using the calibration matrix
% and plots these points too as a visual check on the accuracy of
% the calibration process.
% Lines from the origin to the vanishing points in the X, Y and
% Z directions are overlaid on the image.
% The mean squared error between the positions of the uv coodinates
% and the projected XYZ coordinates is also reported.
%
% The function should also report the error in satisfying the
% camera calibration matrix constraint - the magnitude of
% (q1 x q3).(q2 x q3)
%
function C = calibrate(im, XYZ, uv)

% obtain rows so arbitrary number of points can be used
[rows, cols] = size(XYZ);

XYZ1 = [XYZ, ones(rows, 1)]; % makes it easier to work with

% build B matrix
for n = 1:rows
B(2*n-1, : ) = [XYZ1(n, : ) 0 0 0 0 -uv(1, n)*XYZ(n, : )];
B(2*n, : ) = [0 0 0 0 XYZ1(n, : ) -uv(2, n)*XYZ(n, : )];
end

c = B \ uv(:);
c(12) = 1;
C = reshape(c,4,3)’

XYZ1 = XYZ1′;
for i = 1:rows
suv(:,i) = C*XYZ1(:,i);
suv(:,i) = suv(:,i)/suv(3,i);
end

% calculate the mean squared error between the positions of the uv coodinates and suv.
mse = mean(mean((uv - suv(1:2,:)).^2));
fprintf(1, ‘mean squared error is %d\n’, mse);

% calculate the error in satisfying the camera calibration matrix constraint
q1 = C(1,1:3)’;
q2 = C(2,1:3)’;
q3 = C(3,1:3)’;
error = abs(dot(cross(q1, q3), cross(q2, q3)));
fprintf(1, ‘error in satisfying the camera calibration matrix is %d\n’, error);

% annotate image
imshow(im);
hold;
% plot uv coordinates
plot(uv(1, :), uv(2, :),’r+’)

% plot XYZ coordinates
plot(suv(1,:), suv(2,:),’bx’)

% draw vanishing lines
for i = 1:3
%a = [C(1,4), C(1,i)/C(3,i)];
%b = [C(2,4), C(2,i)/C(3,i)];
%fprintf(1, ‘%d %d %d enter\n’, i, a ,b);
%plot([C(1,4), C(1,i)/C(3,i)],[C(2,4), C(2,i)/C(3,i)],’bx’)
line([C(1,4), C(1,i)/C(3,i)],[C(2,4), C(2,i)/C(3,i)])
end
hold;

hasil kalibrasi pada stereo1.jpg

kalibrasi-stereo1.jpg

hasil kalibrasi pada stereo2.jpg

kalibrasi-stereo2.jpg

fungsi kalibrasi diatas memerlukan XYZ dan uv yang didapat dari stereo.m

XYZ =[

-5.6989 127.4579 226.6703;
-3.7300 127.1281 146.6700;
-4.7525 126.1825 68.3657;
-2.0594 49.9441 66.5729;
-4.0579 48.6581 146.3999;
-3.2317 51.4341 225.6274;
48.1837 4.0716 224.9339;
49.5609 2.8543 145.1344;
50.3336 1.6634 65.5854;
130.6202 3.6425 65.0946;
132.6362 8.1950 143.2314;
132.7597 9.7357 223.1696];

uv1 =[

260 260 259 323 326 327 395 392 389 423 425 429;
116 189 259 275 205 130 126 198 269 244 176 105];

uv2 =[

307 306 303 331 333 336 399 396 393 459 464 469;
103 173 239 266 197 125 134 208 277 267 198 126];

PORTOFOLIO 5

May 22nd, 2008 by zaki03@cs.its.ac.id

Dalam portofolio ini akan dibahas tentang edge detection. Deteksi edge dilakukan dengan smoothing gaussian filter dulu atau tanpa smoothing dengan gaussian filter dulu.

berikut ini perintah matlabnya untuk mendapatkan image-image seperti di atas:

im = imread(’zacky.jpg’);
im = rgb2gray(im);

untuk smoothing dengan menggunakan gaussian filter:
newim = filter2(fspecial(’gaussian’, size(im), 3), im);
imwritesc(newim, ‘gaussian3.png’);

untuk pendeteksian tepi:
tepi = EDGE(newim,’canny’,[0.0500 0.1250]);
imwritesc(tepi, ‘edge3.png’);

untuk menggenerate gradient strength image dengan filter horisontal:
newimhori = filter2([-1 0 1], newim);
imwritesc(newimhori, ‘newimhori3.png’);

untuk menggenerate gradient strength image dengan filter vertikal:
newimvert = filter2([-1; 0; 1], newim);
imwritesc(newimvert, ‘newimvert3.png’);

untuk yang tanpa filter gaussian:
tepi = EDGE(im,’canny’,[0.0500 0.1250]);
imwritesc(tepi, ‘edgewithoutgaussian.png’);

Hasil deteksi edge tanpa menggunakan smoothing gaussian filter terlebih dahulu

edge3.png

Hasil smoothing dengan gaussian dengan standar deviasi = 3

gaussian31.png

Gradient strength image dengan horizontal filter

newimhori31.png

gradient strength image dengan vertikal filter

newimvert3.png

hasil pendeteksian edge dengan ‘canny

edgewithoutgaussian.png

PORTOFOLIO 4

May 20th, 2008 by zaki03@cs.its.ac.id

Maaf portofolio 4 belum kami selesaikan karena komputer kami tidak kuat untuk menjalankan listing program pada portofolio ini (out of memory error)

PORTOFOLIO 3

May 20th, 2008 by zaki03@cs.its.ac.id

Pada portofolio ini akan dipelajari tentang pengolahan citra menggunakan domain frekuensi. Hal ini dapat dilakukan dengan menggunaka transformasi fourier.

Pada portofolio ini ada beberapa tugas

Tugas 1 :

Membangun citra melalui komponen fouriernya

Dalam tugas ini membutuhkan listing program freqcomp.m

cara penggunannya sebagai berikut :

imfreq = imread(’zacky.jpg’)
imfreqgray = rgb2gray(imfreq)
imfreqgray = imresize(im,0.25)
recon = freqcomp(im, frek, 1)
% ganti frek dengan nilai frekuensi yang diinginkan, dalam tugas ini digunakan nilai frekuensi: 100, 200

hasil menggunakan frekuensi 200

hasilfreqcomp.jpg

hasil menggunakan frekuensi 300

hasilfreqcomp300.jpg

Gaussian Filter

untuk langkah-langkah berikut ini diperlukan listing program imwritesc.m

>> im = imread(’zacky.jpg’);
>> im=rgb2gray(im);
>> gausfilt = fspecial(’gaussian’, size(im), 6);
>> imfft = fft2(im);

>> gausfiltfft = fft2(gausfilt);
>> newimgausfft = gausfiltfft.*imfft;
>> imwritesc(im, ‘im.png’);

>> imwritesc(im, ‘im.png’);
>> imwritesc(gausfilt, ‘gausfilt.png’);
>> imwritesc(fftshift(log(abs(imfft)+eps)), ‘imfft.png’);

>> imwritesc(fftshift(log(abs(gausfiltfft)+eps)), ‘gausfiltfft.png’);
>> imwritesc(fftshift(log(abs(newimgausfft)+eps)), ‘newimgausfft.png’);
>> imwritesc(fftshift(real(ifft2(newimgausfft))), ‘newimga.png’);

hasil :

imok.png

Image hasil gray scale

imfftok.png

fft dari Image

gausfiltok.png

gaussian filter dengan standard deviasi 0.6

gausfiltfftok.png

fft dari gaussian filter

newimgausfftok.png

hasil perkalian anatar fft dari gaussian filter dengan fft image

newimgaok.png

hasil smoothing image dengan gaussian filter

Average Filter

Untuk menjalankan average filter diperlukan avefilter.m selain imwritesc.m.

berikut listing yang harus dijalankan :

>> im = imread(’zacky.jpg’);
>> im = rgb2gray(im);
>> avfilt = avefilter(im ,[21 21]);

>> imfft = fft2(im);

>> avfiltfft = fft2(avfilt);
>> newimavfft = avfiltfft.*imfft;
>> imwritesc(im, ‘imav2.png’);
>> imwritesc(avfilt, ‘avfilt2.png’);
>> imwritesc(fftshift(log(abs(imfft)+eps)), ‘imfft2.png’);

hasil dari average filter :

imav2ok.png

Image Gray Scale

imfft2ok.png

fft dari image

avfilt2ok.png

Average filter dengan ukuran [21 21]

avfiltfft2ok.png

fft dari average filter

newimavfft2ok.png

hasil perkalian dari image fft dan average filter fft

newimav2ok.png

hasil dari average filtering

Fase dan Amplitudo dari sebuah Image

Dalam pengolahan citra kali ini hanya dibutuhkan imwritesc.m

berikut listing perintah matlabnya :

newimfft1 = im1mag.*(cos(im2phase) + i*sin(im2phase));
newimfft2 = im2mag.*(cos(im1phase) + i*sin(im1phase));

imwritesc(real(ifft2(newimfft1)), ‘im1mag_im2phase.png’);
imwritesc(real(ifft2(newimfft2)), ‘im1phase_im2mag.png’);

untuk menampilkan citra/image dengan fasenya saja:
im1phaseonly = im1fft./im1mag;
im2phaseonly = im2fft./im2mag;

imwritesc(real(ifft2(im1phaseonly)), ‘im1phaseonly.png’);
imwritesc(real(ifft2(im2phaseonly)), ‘im2phaseonly.png’);

imwritesc(im1, ‘im1.png’);
imwritesc(im2, ‘im2.png’);

PORTOFOLIO 2

May 20th, 2008 by zaki03@cs.its.ac.id

Dalam portofolio ada dua tugas

Tugas 1 :

Dalam tugas ini akan di bahas mengenai fungsi dasr erosi dan dilasi yang merupakan fungsi dasar dari opening dan closing.

Pada tugas ini digunakan sebuah fungsi circularstruct.m .

Berikut ini merupakan image asli

gambarq.jpg

image gray scale

imqgray.jpg

image biner :

imqbw.jpg

image hasil opening

imqopen.jpg

image hasil closing :

imqclose.jpg

image hasil close open :

imqcloseopen.jpg

image hasil open close :

imqopenclose.jpg

berikut ini contoh listingnya :

SE = circularstruct(1);

im_o = imopen (bw, SE);

im_c =imclose(bw, SE);

Tugas 2

Pada tugas kali ini kita akan menentukan landmark (titik pojok) dari sebuah lembara jawaban LJK. Kali ini kita akan memerlukan locatelandmark.m

berikut in adalh gambar surf01 dan hasil landmark nya

surf01.png

hasilimjsurf01.jpg

berikut ini adalah gambar surf02 dan hasil landmarknya :

surf02.png

hasilimjsurf02.jpg

berikut ini merupakan gambar surf05 dan hasil landmarknya :

surf05.png

hasilimsurf05.jpg

berikut ini listing dari program locatelandmark.m

% LOCATELANDMARKS - locates landmarks on SURF form
%
% Usage: [tl, tr, bl, br] = locatelandmarks(im)
%
% Argument: im - Image to be processed, assumed binary.
%
% Returns: tl, tr, bl, br
% - Coordinates of the centroids of the top-left, top-right,
% bottom-left and bottom-right landmarks respectively.
% These coordinates are returned as column vectors in the
% form [row; col] for each landmark.
%
% The function should also display the image with the centroids of the
% landmarks overlayed.
function [tl, tr, bl, br] = locatelandmarks(im)

[rows,cols] = size(im);

% initially define landmark coordinates to extremes
tl=[rows;cols];
tr=[rows;0 ];
bl=[0 ;cols];
br=[0 ;0 ];

bw = ~im;

% Note: 8 pixels is the minimum space between landmarks and adjacent blobs
% (TR landmark, surf10.png with a size of 1128×784 pixels)
% Hence SE is proportional to im size, scaled by 8/784

a = 8/784; %scale factor

SE = ones(a*rows, a*cols);

% perform close-open morphology
% Note: a close-open resulted in the landmarks having strighter sides
% compared to open-close
closeopen = imopen(imclose(bw,SE),SE);

% Matrix with each pixel set to its x coordinate
x = ones(rows,1)*[1:cols];
% Matrix with each pixel set to its y coordinate
y = [1:rows]’*ones(1,cols);

% label all the blobs
[L, num] = bwlabel(closeopen);

% search the blobs to find centers, and then landmarks
for i = 1:num
img = L==i;
area(i) = sum(sum(img));
meanx = sum(sum(double(img).*x))/area(i);
meany = sum(sum(double(img).*y))/area(i);

% determine tl
if tl(1)+tl(2) > meanx + meany
tl = [meanx; meany];
tlindex = i;
end
% determine tr
if tr(1)-tr(2) > meanx - meany
tr = [meanx; meany];
trindex = i;
end
% determine br
if br(1)+br(2) < meanx + meany
br = [meanx; meany];
brindex = i;
end
% determine bl
if bl(1)-bl(2) < meanx - meany
bl = [meanx; meany];
blindex = i;
end
end

% test for upside down form
% Note: tl > bl and tr > br for correctly orientated forms
if area(tlindex) < area(blindex) && area(trindex) < area(brindex)
warning: ‘upside down form’
locatelandmarks(imrotate(im,180));

else imshow(im)
hold;
landmarks = [tl, tr, br, bl];
plot(landmarks(1,:), landmarks(2,:),’+r’,'MarkerSize’,50,’LineWidth’,2);
hold;
end

PORTOFOLIO 1

May 19th, 2008 by zaki03@cs.its.ac.id

Tugas 1

Tugas pertama yang diberikan bu Anny adalah mengolah image ‘lego.png menjadi sebuah image biner

caranya adalah :

im2=imread(’lego11.png’);

bw = im2bw(im2, 0.635);

bw = ~bw;

dibawah ini adalah image asli

lego11.png

lego11.png

berikut ini adalha hasil dari binerisasi

bw3.jpg

Tugas 2

mengolah image dengan memisahkan obyek yang satu dengan yang lain dengan melakukan pelabelan citra dan kemudian untuk dicari momennya. berikut beberapa contohnya:

bw23.jpg

hasil diatas diperoleh dengan menggunakan listing moments.m

% MOMENTS
%
% Function calculates the moments of a binary image and returns
% the centroid, the angle of axis of minimum inertia, and a measure
% of ’roundness’. The function assumes that there is only one object
% in the binary image.
%
% function [area,centroid, theta, roundness] = moments(im)
%
% Argument: im - a binary image containing values of 0 or 1
%
% Returns: centroid - a 2 element vector
% theta - the angle of axis of minimum inertia (radians)
% roundness - ratio of minimum inertia/maximum inertia.
%
% Note that positive x is to the right and positive y is downwards
% thus angles are positive clockwise.
%
% The function also displays the image and overlays the position of
% the centroid and the axis of minimum inertia.

function [area, centroid, thetamin, roundness] = moments(im)

%im = imread (im);
[rows,cols] = size(im);
x = ones(rows,1)*[1:cols]; % Matrix with each pixel set to its x coordinate
y = [1:rows]’*ones(1,cols); % Matrix with each pixel set to its y coordinate

area = sum(sum(im));
meanx = sum(sum(double(im).*x))/area
meany = sum(sum(double(im).*y))/area
centroid = [meanx, meany];

% coordinates changed with respect to centre of mass
x = x - meanx;
y = y - meany;

a = sum(sum(double(im).*x.^2));
b = sum(sum(double(im).*x.*y))*2;
c = sum(sum(double(im).*y.^2));

denom = b^2 + (a-c)^2;

if denom == 0
% let thetas equal arbitrary angles
thetamin = 2*pi*rand;
thetamax = 2*pi*rand;
roundness = 1;
else
sin2thetamin = b/sqrt(denom); %positive solution
sin2thetamax = -sin2thetamin;
cos2thetamin = (a-c)/sqrt(denom); %positive solution
cos2thetamax = -cos2thetamin;

thetamin = atan2(sin2thetamin, cos2thetamin)/2;
thetamax = atan2(sin2thetamax, cos2thetamax)/2;
Imin = 0.5*(c+a) - 0.5*(a-c)*cos2thetamin - 0.5*b*sin2thetamin;
Imax = 0.5*(c+a) - 0.5*(a-c)*cos2thetamax - 0.5*b*sin2thetamax;
roundness = Imin/Imax;
end

% draw an axis proportional to object size
% 0.5 takes into acount lines with roundness = 0
% 5 takes into acount small objects, so axis is still visible.
rho = sqrt(area)/(roundness + 0.5) + 5 ;
[X1,Y1] = pol2cart(thetamin, rho);
[X2,Y2] = pol2cart(thetamin + pi, rho);

imshow(im);
hold;
line([X1 + meanx, X2 + meanx],[Y1 + meany, Y2 + meany])
plot(meanx, meany,’r+’)
title([’Luas Area Object: ‘,num2str(area),’ pixel’])
hold;

cara menjalankannya dengan cara

>> im2 = imread(’lego11.png’);
>> imbw= im2bw(im2, 0.635);
>> imbw = ~imbw;
>> [BWL,num] = bwlabel(imbw);
>> [area, centroid, theta, roundness] = moments2 (nomor_bwl ) %nomor _bwl diganti dengan nomor label pada hasil diatas diperoleh dengan nomor label 2.

program akan menunjukkan hal berikut :

meanx =

198.9242

meany =

257.5392

Current plot held
Current plot released

area =

1992

centroid =

198.9242 257.5392

theta =

-0.3306

roundness =

0.0033

menghitung pita gelap dan pita terang (Interferensi gelombang)

September 27th, 2007 by zaki03@cs.its.ac.id

Saya mendapatkan ide tentang cara mudah untuk menghitung pita terang ke n (misal :ke dua) dan pita gelap ke m ketika saya mengajar privat salah satu murid saya. Alhamdulillah.

Berikut akan kami berikan bagaimana membuat perhitungan jarak pita gelap dan pin juga pita terang menjadi mudah.

Kuncinya adalah menghitung jarak pita gelap pertama dengan pusat (terang pusat). misala setelah mendapatkan y pita gelap pertama adalah y=0,4 mm maka y pita terang pertama adalah y=0.8 mm pita gelap kedua adlah y= 1,2 mm, pita terang ke dua adalah y=1,6 mm, pita gelap ke tiga adalah y = 2,0 mm dan seterusnya.

jadi pita teang pertama dengan pita gelap pertama ada perbedaaan 0,4 mm dan seterusnya…

jadi nilai y pita gelap pertama, pita terang pertama, pita gelap kedua dst adlah kelipatan angka yang konstant (dalam kasus ini 0,4 mm)

mudah kan perhitungannnya ?

selamat mencoba

Intermezzo : Keindahan Matematika

September 14th, 2007 by zaki03@cs.its.ac.id

Dapat dari milis

Keindahan Matematika !

1 x 8 + 1 = 9
12 x 8 + 2 = 98
123 x 8 + 3 = 987
1234 x 8 + 4 = 9876
12345 x 8 + 5 = 98765
123456 x 8 + 6 = 987654
1234567 x 8 + 7 = 9876543
12345678 x 8 + 8 = 98765432
123456789 x 8 + 9 = 987654321

1 x 9 + 2 = 11
12 x 9 + 3 = 111
123 x 9 + 4 = 1111
1234 x 9 + 5 = 11111
12345 x 9 + 6 = 111111
123456 x 9 + 7 = 1111111
1234567 x 9 + 8 = 11111111
12345678 x 9 + 9 = 111111111
123456789 x 9 +10= 1111111111

9 x 9 + 7 = 88
98 x 9 + 6 = 888
987 x 9 + 5 = 8888
9876 x 9 + 4 = 88888
98765 x 9 + 3 = 888888
987654 x 9 + 2 = 8888888
9876543 x 9 + 1 = 88888888
98765432 x 9 + 0 = 888888888

Brilliant, isn’t it?
And look at this symmetry:

1 x 1 = 1
11 x 11 = 121
111 x 111 = 12321
1111 x 1111 = 1234321
11111 x 11111 = 123454321
111111 x 111111 = 12345654321
1111111 x 1111111 = 1234567654321
11111111 x 11111111 = 123456787654321
111111111 x 111111111=123456789 87654321

Menghitung waktu untuk mencapai titik puncak tanpa rumus

September 14th, 2007 by zaki03@cs.its.ac.id

Soal : Sebuah peluru di tembakkan dengan kecepatan awal Vo=100 m/s. Berapakah waktu yang diperlukan peluru tersebut untuk mencapai titik tertinggi ?

Jawaban :

Untuk menjawab soal ini dengan tanpa rumus, perlulah kita mengerti bahwa suatu benda yang bergerak ke atas akan diperlambat kecepatannya oleh grafitasi bumi. Kecepatan benda tersebut akan berkurang sebesar 10 m/s tiap detik. Karena tiap detik kecepatannya berkurang 10 m/s Suatu benda dengan kecepatan awal 100 m/s akan menjadi berkecepatan  0 m/s dalam waktu 10 detik (ingat!, ketika berada pada titik tertinggi kecepatan suatu benda adalah 0 (nol) ). sehingga waktu yang dibutuhkan oleh peluru tersebut untuk mencapai titik puncak adalah 10 sekon.

Mudah sekali khan ?