![]() | |
| | ||
![]() |
| | Seçenekler |
| | #1 |
| Analog Saat V1.0 - Clock (C++'da Kod Örneği) Bilgisayar ortaminda analog saatin nasil yapildigini merak eden arkadaslara ornek olabilecek kucuk ve basit bir uygulama. /************************************************** **** TURBO C++ 3.0 ************************************************** *****/ #include <stdio.h> #include <conio.h> #include <graphics.h> #include <dos.h> #include <time.h> #include <math.h> #include <stdlib.h> #include <string.h> const double pi = 3.14159265358979323; struct time zaman; //*********************************************** //Gercek zamanli bekleme yapacak olan procedure void bekle(int sure) { int tutulan,hesaplanan; struct time zaman; gettime(&zaman); tutulan = zaman.ti_sec; do { gettime(&zaman); hesaplanan = zaman.ti_sec; }while(abs(hesaplanan - tutulan)<=sure); } //*********************************************** //Grafik modunu acmak veya kapatmak icin gerekli olan procedure void grafik(char deger) { int gd,gm; if (!deger) { gd = DETECT; initgraph(&gd,&gm,"e:\\tc3\\bgi"); } else closegraph(); } //*********************************************** //Burada ki kodlar tek bir procedure'de toplanabilirdi //fakat kodlarin daha anlasilir olmasi ve konunun ozumsenmesi //acisindan saat,dakika ve saniye kollarini cizecek olan komutlari //ayri ayri procedure'ler de tanimladim. void saniye_ciz(int orjinx, int orjiny,int uzunluk,int renk,int sure) { int x1,y1; double aci; aci = ( ( (45+sure) * pi) / 180) * 6; x1 = int(orjinx + uzunluk * cos(aci)); y1 = int(orjiny + uzunluk * sin(aci)); setcolor(renk); line(orjinx,orjiny,x1,y1); setcolor(renk); circle(x1,y1,3); } void dakika_ciz(int orjinx, int orjiny,int uzunluk,int renk,int sure) { int x1,y1; double aci; aci = ( ( (45+sure) * pi) / 180) * 6; x1 = int(orjinx + uzunluk * cos(aci)); y1 = int(orjiny + uzunluk * sin(aci)); setcolor(renk); line(orjinx,orjiny,x1,y1); } void saat_ciz(int orjinx, int orjiny,int uzunluk,int renk,int sure) { int x1,y1; double aci; //(zaman.ti_min / 15) * 0.1 -> bu matematiksel formul her 15 dakikada //saat cizgisini 1 nokta ilerletir boylelikle gercek duvar saati etkisi //daha net yakalanmis olur. aci = ( ( (45+sure) * pi) / 180) * 30 + (zaman.ti_min / 15) * 0.1; x1 = int(orjinx + uzunluk * cos(aci)); y1 = int(orjiny + uzunluk * sin(aci)); setcolor(renk); line(orjinx,orjiny,x1,y1); } //*********************************************** //Saat kadranini cizmeye yarayan procedure void saat_kadrani(int yaricap,int renk) { const char *mesaj1 = "~DeniZ YaziliM~"; const char *mesaj2 = "Analog Saat V1.0"; const char *mesaj3 = "Coded By : Deniz TURKAN"; const char *mesaj4 = "e-mail : deniz_turkan@yahoo.com"; int kadx,kady,x,y,i; double aci; randomize(); //Rasgele koordinatlara noktalar yerlestiriliyor for(i=0;i<=1500;i++) { if(i%2==0) putpixel(random(getmaxx()),random(getmaxy()),15); else putpixel(random(getmaxx()),random(getmaxy()),8); } //Ekranin orta noktasi bulunuyor (orjin tespiti) x = getmaxx() / 2; y = getmaxy() / 2; //saat kadraninin yuzu setcolor(4); setfillstyle(1,renk); circle(x,y,yaricap); floodfill(x,y,4); //kadranin ortasinda ki kucuk daire setcolor(4); setfillstyle(1,1); circle(x,y,int(yaricap/10)); floodfill(x,y,4); //kadranin ortasinda yer alan reklam mesaji setcolor(7); outtextxy(x-int(strlen(mesaj1)*8.18)/2,y-int(yaricap/2),mesaj1); //Her bes dakikalik dilimler belirleniyor i = 0; do { i += 1; aci = ( ( (45+i) * pi) / 180) * 6; kadx = (x + (yaricap + 10) * cos(aci)); kady = (y + (yaricap + 10) * sin(aci)); if (i%5==0) { setcolor(4); circle(kadx,kady,4); putpixel(kadx,kady,15); } else { setcolor(2); circle(kadx,kady,3); } setcolor(4); circle(kadx,kady,2); putpixel(kadx,kady,15); }while(i<=60); //mesajlar ekrana yazdiriliyor setfillstyle(1,0); bar(1,getmaxy() - 30,int(strlen(mesaj4)*8.19),getmaxy()); outtextxy(10,getmaxy() - 30,mesaj2); outtextxy(10,getmaxy() - 20,mesaj3); outtextxy(10,getmaxy() - 10,mesaj4); } //*********************************************** int main() { //grafik modu'na geciliyor grafik(0); saat_kadrani(130,0); setwritemode(XOR_PUT); setlinestyle(0,3,3); while(!kbhit()) { //sistemin zaman bilgisi aliniyor gettime(&zaman); //sekiller ciziliyor saniye_ciz(getmaxx()/2,getmaxy()/2 ,120,8,zaman.ti_sec); dakika_ciz(getmaxx()/2,getmaxy()/2 ,120,9,zaman.ti_min); saat_ciz(getmaxx()/2,getmaxy()/2 ,80 ,9,zaman.ti_hour); bekle(0.1); //delay(25); //cizilen sekiller siliniyor saniye_ciz(getmaxx()/2,getmaxy()/2 ,120,8,zaman.ti_sec); dakika_ciz(getmaxx()/2,getmaxy()/2 ,120,9,zaman.ti_min); saat_ciz(getmaxx()/2,getmaxy()/2 ,80 ,9,zaman.ti_hour); } //grafik modundan cikiliyor grafik(-1); return 0; } (alıntı) | |
| | |
| | #2 |
| Bişey anladımsa arap olayım kardeşim tşk ler yinede | |
| | |
| | #3 |
| SAG ol! Fiji | |
| | |
| | #4 |
| teşekürler emeğine sağlık | |
| | |
| | #5 |
| elleriniz dert görmesin.............. | |
| | |
| | #6 |
| Teşekkürler. Emeğine Sağlık. Güzel Bir çalışma | |
| | |
| | #7 |
| çok teşekkür ederim | |
| | |
| | #8 |
| Sağol Kardeş C++ Da Derleyelim Bakalım | |
| | |
| | #9 |
| teşkkrlerrr sağolll | |
| | |
| | #10 |
| php olsa bişeyler anlardımda bundan bi b*k anlamıyorum | |
| | |
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu Başlatan | Forum | Cvpl | Son Mesaj |
| Weather Alarm Clock v3.5 - Saat,Tarih,Hava Durumunu Bir Bakışta Görmenizi Sağlar.. | ksklife | Sistem Programları | 7 | 17.09.2008 15:55 |
| İş garantisi CV Örneği | basri | Silinen Konular ve Mesajlar | 2 | 16.05.2008 21:47 |
| cv örneği | ege2908 | Silinen Konular ve Mesajlar | 17 | 09.04.2008 22:01 |
| 1 Saat ölü Kalan Adam 1 Saat Sonra Dirildi... | gantepli27 | Haber Arsivleri | 2 | 20.01.2008 20:04 |