avatar
Tarih: 15:09, 09-01-09 15:09 Sitemize Hoşgeldiniz. (Oturum AçKayıt Ol)

Bu Konuyu Görüntüleyenler
Bu Konuyu görüntüleyenler: 1 Ziyaretçi

Konuyu Gönder  Mesaj Önizleme 
DirectX ile Web Sayfalarında Grafik Çizme
22:27, 18-06-08 22:27 (En son düzenleme: 22:28 18-06-08 22:28 **SaBRoZa**.)
Mesaj: #1
DirectX ile Web Sayfalarında Grafik Çizme
Bu yazida sizlere DirectX ile internet ortamında grafik çizdirmekten
bahsedeceğim.


Hepimiz yada çoğumuz grafikleri herhangi bir programda çizdirip .jpg
görüntüsünüinternette yayınlarız. Peki anında çizdirmeye nedersiniz ? (anında kelimesi
biraz ustaca kod yazmayı gerektiriyor sanırım.) Örneğin 2 frame den oluşan
bir ana sayfa olsun. Üst frame'de veri tabanından sürekli bilgi çekebilen
bir asp kod sayfası, alt frame'de ise DirectX ile grafik çizebilen bir
script. Sanırım "anında" kelimesine yaklaştık :).

Şimdi aşağıda yazdığım kod satırlarını açıklayayım;
Önce directx ile çizim yapabilmek için bir obje oluşturmamız gerekiyor. Bunu
tablo içinde yapıyoruz (zorunlu değil). Table komutu ile etkili Border lar
oluşturabilelim diye.
STYLE kısmındaki width Çizim penceresinin ve ölçeğinin genişliğini, height
yüksekliğini, left soldan right ise sağdan mesafesini belirliyor. Burada left,right
özellijlerini kullanmadık çünkü obje tablo içinde.

Kodlar fazla karışık değil kodların yanlarındaki açıklamaların anlamak için
yeterli olabileceğini sanıyorum. DirectX kullanarak internet ortamında
hareket eden,dönebilen, boyutunu dolgurengini, kalınlığını, tipini, sizin
ayarlayabileceğiniz metinler hazırlamak oldukça kolay vede eğlenceli.
3 boyutlu şekiller çizmek ve daha bir çok özellikleri yaptırabilirsiniz.

Grafik üzerinde mouse'un sag tuşuna tıklamayı unutmayın. save background
as.. veya save picture as.. göreniniz varmı :)

Birazda dez avantajlarından bahsetmek istiyorum.
Tabi aşağıdaki script kullanıcı taraflı bir script. Yani kodlarınız uzadığı
sürece yüklenmesi gereken sayfa zaman alacaktır.
Bir diğeri ise OBJECT tanımı içinde yapılan grafik penceresinin genişliği ve
yüksekliği aynı zamanda ölçeği olan değerler. Şöyleki aşağıdaki örnekte
Ölçeğimizin genişliği 600 pixel yüksekliği 400 pixel. Ne var bunda zor olan ? demeyin
hemen çünkü 0,0 merkezi grafik penceresinin tam ortası yani sol başlangıç
noktası -300, sağdaki son nokta ise +300 değerine sahip bu yükseklik içince
geçerli. Buda ölçeklendirme yaparken biraz zorluk yaratıyor.

Bir sonraki yazıda Tablolardaki verileri kullanarak nasıl
grafikleyebileceğimizi anlatmaya çalışcağım ( HTML ASP DHTML DIRECTX bir
arada ).

Bu makaleyi okuyan ve katkı koyabilecek herkese şimdiden teşekkür ediyorum.

Bilgi Paylaştıkça Çoğalır. Farkınız bilmek değil, bilginizi kullanabilmek
olsun.


Kod:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head>

<body>
<Table border="1" align="center" bordercolorlight="#C0C0C0"
bordercolordark="#808080" bordercolor="#808080" bgcolor="#808080"
cellspacing="5" cellpadding="4">
<TR><TD bgcolor="#FFFFFF">
<OBJECT ID=DRW STYLE="WIDTH:600; HEIGHT:400; Z-INDEX:1"
CLASSID="CLSID:369303C2-D7AC-11d0-89D5-00A0C90833E6">
</OBJECT>
</TD></TR>
</TABLE>
</body>

<SCRIPT LANGUAGE=VBSCRIPT >
<!--
Dim dk, lib
set lib = DRW.Library ' DirectX kütüphanesi açılıyor.
set dk=DRW.DrawSurface ' Çizim kütüphanesi açılıyor.

call dk.fillcolor(lib.ColorRGB255(0,0,0)) ' Cizgi Rengi
call dk.linecolor(lib.ColorRGB255(0,0,0)) ' Dolgu Rengi
call dk.oval(0,0,5,5) ' 0,0 merkez noktasının yerine dikkat edin.
' X ekseni
call dk.rect(-280,180,560,5) ' dörtgen,kare çizen komut
' Y ekseni
call dk.rect(-280,-180,5,360) ' dörtgen,kare çizen komut
' BAR GRAFIK
call dk.fillcolor(lib.ColorRGB255(0,100,0)) ' Dolgu Rengi
call dk.linecolor(lib.ColorRGB255(0,100,0)) ' Cizgi Rengi
'
w=65
For i = 1 to 7
X=-280 + w*(i-1) + 10*i
Y=-i*50
call dk.rect(x,180,w,y)
Next
' TEXT GRAFIK
call dk.fillcolor(lib.ColorRGB255(255,0,0)) ' Dolgu Rengi
call dk.linecolor(lib.ColorRGB255(255,0,0)) ' Cizgi Rengi
call dk.Font("Times New Roman",18,300,0,0,0) ' Text adi,boyu
w=65
For i = 1 to 7
X=-260 + w*(i-1) + 10*i
Y=175-i*50
call dk.text(i,x,y)
Next

'
' Çizimlerin ekranda gösterilmesisini sağlamak için
' aşağıdaki komutlar eklenir.
'
dk.RestoreGraphicsState()
DRW.DrawSurface=dk
-->

</SCRIPT>

</html>

[Resim: uyari.gif]Uyarı: İndirmeye başlamadan önce lütfen linklerin hepsini kontrol ediniz.
[Resim: istek.gif]İstek Yapmadan Önce Forumda Sadece Üyeler Linkleri Görebilir. Üye Olmak İçin TIKLAYIN Yapınız!
[Resim: saygi.gif]Verilen emeğe lütfen saygı gösteriniz. En azından bir teşekkür edebilirsiniz.


Her Türlü Sorununuzda Bana Ulaşın.
Zamanın Durduğu Kaliteli İnsanların Paylaşım Mekanı

Sadece Üyeler Linkleri Görebilir. Üye Olmak İçin TIKLAYIN

Hedefimiz En Büyük ve En İyi Olmaktır
Kullanıcının websitesini ziyaret et Bu kullanıcının gönderdiği tüm mesajları bul
Bu mesajı bir cevapta alıntı yap
Konuyu Gönder  Mesaj Önizleme 


Foruma Git:

OdevTurkiye.NeT - helllife.org - Tuba Büyüküstün - Yasemin Ergene - Selena Dizisi - AccessTr.neT - Amy Lee - burak sağyaşar