CAYBURG.NET
Programlama Dilleri Delphi, Visual Basic, C, C++,C#, ASP, Perl, Php, Html vb. diller hakkında bilgi ve birikimlerinizi paylaşabilir ve yardım alabilirsiniz.
Cevapla
Analog Saat V1.0 - Clock (C++'da Kod Örneği) Bu konu 322 defa okundu ve 13 yorum yazildi.
 
Seçenekler
Alt 25.09.2007, 22:21 #1
Anaokulu

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 : [Üye Özel | Für Mitglieder | For Members]";

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ı)

Alt 13.04.2008, 00:37 #2
Ilkokul 8. Sinif
Bişey anladımsa arap olayım kardeşim tşk ler yinede
Alt 14.04.2008, 13:47 #3
Ilkokul 2. Sinif
SAG ol!

Fiji
Alt 15.04.2008, 11:30 tahkar - MSN üzeri Mesaj gönder #4
Üniversite 4. Sinif

Standart teşekürler


teşekürler emeğine sağlık
Alt 18.04.2008, 16:34 #5
Ilkokul 5. Sinif
elleriniz dert görmesin..............
Alt 18.04.2008, 22:47 #6
Lise 1. Sinif
Teşekkürler. Emeğine Sağlık. Güzel Bir çalışma
Alt 18.04.2008, 23:53 #7
Ilkokul 8. Sinif
çok teşekkür ederim
Alt 25.04.2008, 19:08 #8
Silver Members
Sağol Kardeş C++ Da Derleyelim Bakalım
Alt 01.06.2008, 02:46 #9
Ilkokul 6. Sinif
teşkkrlerrr sağolll
Alt 01.06.2008, 12:47 #10
Banned
php olsa bişeyler anlardımda bundan bi b*k anlamıyorum
Alt 01.06.2008, 15:30 #11
Lise 2. Sinif
teşekkürler
Alt 17.10.2008, 23:30 #12
Üniversite 4. Sinif
vallaha ben bir sey anlamadim
Alt 19.11.2008, 16:22 #13
Ilkokul 1. Sinif
bunu anlamak1senemizi alır anca daha detaylı bir anlatım şekli yokmuydu yine emeğine sağlık anlamasamda:d
Alt 28.11.2008, 20:09 #14
Lise 2. Sinif
saol kardeş eline sağlık
Cevapla

Seçenekler

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB Kodlari Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı


Benzer Konular
Konu Konuyu Başlatan Forum Cvp Son Mesaj
CV Örneği burak25 Silinen Konular ve Mesajlar 1 07.02.2009 22:32
Sharp World Clock 4.35 tHeBruTaLiTyOfHeLL Sistem Programları 2 30.01.2009 18:07
Premium Clock v2.34 | 4.30 MB Déjà Vu Ses ve Görüntü Programları 2 29.09.2008 21:52
Weather Alarm Clock v3.5 - Saat,Tarih,Hava Durumunu Bir Bakışta Görmenizi Sağlar.. ksklife Sistem Programları 7 17.09.2008 14:55
1 Saat ölü Kalan Adam 1 Saat Sonra Dirildi... gantepli27 Haber Arsivleri 2 20.01.2008 19:04

WEZ Format +2. Şuan Saat: 15:48.
Cayburg - Arşiv - Top - Iyiler - Web Stats
Rapidshare Uploaded.to Uptal.com Upshare.NET Filefactory.com Videolari, Video izle Fun, Fan Anket WinRAR | File Hosting Free Kurd Radyo Dinle Bedava Albüm Indir Yeni Albüm Albüm Paylasim .Net .Org
Powered by vBulletin® Version 3.8.1 Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197