By.KaBuS weB MaSteR
Mesaj Sayısı : 223 Kayıt tarihi : 13/06/09 Yaş : 31 Nerden : Notalar İcinden Lakap : By.KaBuS
| Konu: Vbscript - directx ile analog saat Ptsi Haz. 15, 2009 9:21 pm | |
| - Kod:
-
<div id="saatim" style="position: absolute;"> <OBJECT ID=DRW STYLE="WIDTH:162; HEIGHT:162; Z-INDEX:1" CLASSID="CLSID:369303C2-D7AC-11d0-89D5-00A0C90833E6"> </OBJECT></div> <script LANGUAGE=VBscript > <!-- 'yukarıdaki object tanımlaması zorunludur. 'HATIRLATMA!!!: en önce çizilen en altta kalır
Dim resim, lib sub ciz() Dim zaman zaman = Now saat = Hour(zaman) dak=minute(zaman) san=second(zaman) 'saniye dakika ve saati değişkenlere attık set lib = DRW.Library set resim=DRW.DrawSurface 'directx kitaplığını ayarladık
resim.clear 'yuzey her defasında temizleniyor
call resim.fillcolor(lib.ColorRGB255(150,150,50)) call resim.linecolor(lib.ColorRGB255(0,0,0)) call resim.oval(-80,-80,160,160) ' 100,100 'saatin en dış halkası cizildi
call resim.fillcolor(lib.ColorRGB255(150,100,92)) call resim.linecolor(lib.ColorRGB255(120,141,255)) call resim.oval(-75,-75,150,150) ' 100,100 'saatin ana çemberi cizildi
call resim.linecolor(lib.ColorRGB255(0,0,0)) resim.ArcDegrees -55, -55, 0, 360, 110, 110 'rakamların altındaki yay cizildi
call resim.fillcolor(lib.ColorRGB255(100,0,255)) resim.Font "Arial", 12, 0, 0, 0, 0 for i=1 to 12 yazy=66*Math.sin(-1.59719 + i*30*Math.PI/180)+5 yazx=66*Math.cos(-1.59719 + i*30*Math.PI/180)-5 resim.Text (i), yazx, yazy next 'saate rakamlar yerleşti
seconds = (saat * 60 * 60 + dak * 60 + san) saatacisi = (2 * Math.PI ) - (2 * Math.PI * (seconds - 3 * 60 * 60) / (12 *60 * 60)) dakacisi = (2 * Math.PI) - (2 * Math.PI * (seconds - 15 * 60) / (60 * 60)) sanacisi = (2 * Math.PI) - (2 * Math.PI * (seconds - 15) / 60) 'saat, dakika ve saniye çizgileri için açılar hesaplandı
saatx=40 * Math.cos(saatacisi*-1) saaty=40 * Math.sin(saatacisi*-1) dakx=60 * Math.cos(dakacisi*-1) daky=60 * Math.sin(dakacisi*-1) sanx=50 * Math.cos(sanacisi*-1) sany=50 * Math.sin(sanacisi*-1) 'saat,dakika ve saniye çizgilerinin x2 ve y2 si hesaplandı
dim saatyaz :if san<10 then :sangec="0" & san:else:sangec=san:end if if saat<10 then:saatgec="0" & saat:else:saatgec=saat:end if if dak<10 then:dakgec="0" & dak:else:dakgec=dak:end if saatyaz=saatgec & ":" & dakgec & ":" & sangec resim.Font "Arial", 15, 0, -1, 0, 0 resim.fillcolor(lib.ColorRGB255(san*4,san*2,san*3) ) resim.Text (saatyaz), -32, -15 'yazıyla saat yazıldı
resim.LineColor (lib.ColorRGB255(150,150,50)) resim.LineWidth 4 resim.Line 0,0, saatx, saaty 'saat çizgisi çizildi
resim.LineColor (lib.ColorRGB255(250,250,0)) resim.LineWidth 3 resim.Line 0,0, dakx, daky 'dakika çizgisi çizildi
resim.LineColor (lib.ColorRGB255(0,250,0)) resim.LineWidth 2 resim.Line 0,0, sanx, sany 'saniye çizgisi çizildi
resim.Fillstyle 1 call resim.fillcolor(lib.ColorRGB255(80,180,55)) call resim.linecolor(lib.ColorRGB255(120,141,255)) call resim.oval(-5,-5,10,10) ' 10,10 'saatin ortasındaki kesişme yerlerini kapatan daire çizildi
resim.RestoreGraphicsState() DRW.DrawSurface=resim
'resim objeye atandı
end sub --> </script> <script language="Javascript1.2"> <!-- ns=(document.layers); ie=(document.all); document.onmousemove=hareket; var xmouse=0; var ymouse=0; if (ns||ie)window.onload=saatz; function saatz() {
time = new Date (); san = time.getSeconds(); timerID = setTimeout("saatz()",10) this.saatim.style.left=xmouse-80;//saat mouse x hizasının ortasına konumlandı this.saatim.style.top=ymouse+30; //saat mouse y+30 hizasına konumlandı if (san==san){ciz();}// sabit dongu kurup devamlı saat çizimini yenilemesi sağlandı } function hareket() { ymouse = event.y; xmouse = event.x; } --> </script>
| |
|