Programlama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Programlama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

9 Mart 2025 Pazar

AutoLISP: Aritmetik ve Matematik Fonksiyonlar

AutoLISP, AutoCAD kullanıcıları için tasarlan güçlü bir programlama dilidir ve AutoCAD'in özelleştirme ve otomasyon yeteneklerini önemli ölçüde genişletir.

LISP dilinin AutoCAD'e uyarlanmış bir türevi olan AutoLISP, özellikle CAD (Bilgisayar Destekli Tasarım) ortamında çizim süreçlerini otomatikleştirmek, özelleştirilmiş işlemler gerçekleştirmek ve iş akışını hızlandırmak için tercih edilir.

AutoLISP, temel aritmetik işlemlerden karmaşık matematiksel hesaplamalara kadar geniş bir yelpazede işlev sunan dahili fonksiyonlara sahiptir. Bu fonksiyonlar, kullanıcıların çizim otomasyonu sırasında matematiksel hesaplamaları kolayca gerçekleştirmesine olanak tanır.

Ayrıca, AutoLISP'in esnek yapısı sayesinde, dilin dahili fonksiyonlarının yetersiz kaldığı durumlarda özel matematiksel işlemler için harici fonksiyonlar da geliştirilebilir.

Fonksiyonlara geçmeden önce AutoLISP dilinde kullanılan sayı türlerini görelim.

  • Tamsayı (Integer)
Tam sayılar, ondalık değer içermeyen tam sayılardır.
AutoLISP'teki tam sayılar, -2,147,483,648 ile +2,147,483,647 arasında değer alan 32-bit işaretli sayılardır. Bazı fonksiyonlar ise yalnızca -32678 ile +32767 arasındaki 16-bit sayıları kabul eder.

Eğer izin verilen maksimum tam sayı sınırını aşan bir değer girerseniz, AutoLISP bu değeri bilimsel gösterimde bir reel sayı (float) olarak saklar. Bilimsel gösterimdeki sınırı aşan bir sayı olursa inf.0 (sonsuzluk) sonucu oluşur.

Örnek:
(setq sayi 2147483648)
	; Sonuç 2.14748e+009
	; Sayı integer sınırını aştığı için reel sayı. Bilimsel gösterim
(setq sayi (expt 2147483648 -100))
	; Sonuç: 0.0 reel sayı
	; Sıfıra yakın en küçük negatif sayı sınırını aştığı için 0.0
(setq sayi (fix 1.0e+308))
	; Sonuç: 1.0e+308
	; Sayı integer sayı sınırını aştığı için reel sayı olarak saklanır
  • Reel (Ondalıklı) Sayı (Float)
Ondalıklı sayılar, tam sayılardan farklı olarak ondalık nokta içeren sayılardır. AutoLISP'te bu sayılar reel sayı (float) olarak adlandırılır. Örneğin, 3.14 -0.5 2.0 geçerli reel sayılardır.

AutoLISP'te reel sayılar, 64-bit kayan noktalı (floating-point) sayılar olarak saklanır.
Bu nedenle, belirli bir hassasiyetle işlem yapabilir ancak çok büyük veya çok küçük değerlerde hata payı oluşabilir.

fix fonksiyonu, bir reel sayının küsuratını atarak tam sayıya dönüştürür (yuvarlama yapmaz).

AutoLISP'te çok büyük bir sayı hesaplanmaya çalışıldığında, sayı sınırları aşılırsa inf.0 (sonsuzluk) değeri döndürülür:

AutoLISP'te sayılar dinamik olarak yönetilir, yani bir değişken hem tamsayı hem de reel sayı olabilir. Örneğin:

(setq sayi 5) ; Tamsayı(Integer)
(setq sayi 3.14); Reel sayı(Float)
(setq sayi 12.0); Reel sayı
(setq sayi 15.); Reel sayı. Küsurat 0 ise noktadan sonra 0 yazılmayabilir.
(setq sayi 1.0e-323) ; Sonuç: 9.88131e-324
(setq sayi 1.0e-324) ; Sonuç: 0.0 Sınırı aştığı için 0
(setq sayi 1.0e+308) ; Sonuç: 1.0e+308
(setq sayi 1.0e+309) ; Sonuç: inf.0 Sayı sınırı aştığı için sonsuz

Bu dinamik yapı, programcıya esneklik sağlarken, büyük veri setlerinde performans sorunlarına neden olabilir.

1) Temel Aritmetik Fonksiyonlar

a) Toplama. + fonksiyonu

Toplama işlemi için + fonksiyonu kullanılır. Bu fonksiyon, birden fazla sayıyı toplamak için kullanılabilir.
(+ 1 2 3) ; Sonuç:6
(+ 20 -7) ; Sonuç:13
(+ 5 10.52 20.3 0.12) ;Sonuç: 35.94
(+ 1 2.0 3 4) ; Sonuç:10.0
(setq toplam (+ 12 34)) ;toplam = 46

21 Temmuz 2023 Cuma

Lisp, AutoLisp, VisualLisp nedir?

Lisp nedir?

Lisp (List Processing = Liste İşleme) 1958 yılında John McCarthy tarafından geliştirilen ve kullanımda olan en eski ve en güçlü programlama dillerinden biridir. Yapay zeka  alanındaki ilk önemli dildir. Lisp, temel olarak verileri özgün bir yöntem olan bağlam listeleri kullanarak temsil eder. Simgelerle ifade edilen sembolik hesaplama yetenekleri sayesinde yapay zeka ve sembolik mantık için ideal bir dil olarak popülerlik kazanmıştır.

Lisp'in temel özellikleri:

  • Listeler:
    Lisp, bağlam listeleri adı verilen veri yapısını temel alır. Bu, basit elemanların listeler halinde bir araya gelerek karmaşık veri yapıları oluşturduğu anlamına gelir.
  • Sembolik Hesaplama:
    Lisp, sembolik ifadeleri ve semboller arasındaki matematiksel ve mantıksal işlemleri kolayca işleyebilir. Bu özellik, lisp'i yapay zeka ve sembolik mantık problemlerinin çözümünde etkili kılar.
  • Makro Sistem:
    Lisp, meta programlama için güçlü bir makro sistemi sunar. Bu, yeni dil yapıları oluşturmak ve programları genişletmek için kullanılabilir. Makrolar, Lisp kodu üretmek için kullanılır ve programcılara yeni dil yapıları ekleyerek kod tekrarını azaltmaya yardımcı olur.
  • Rekürsif:
    Lisp, rekürsif(özyinelemeli) fonksiyonları destekleyen ilk programlama dillerinden biridir. Rekürsif(kendini çağıran) fonksiyonlar, bir problemi daha küçük alt problemlere bölmek ve çözmek için fonksiyonun kendi kendini çağırmasını sağlar.
  • Çöp toplama (Garbage Collection):
    Lisp, otomatik hafıza yönetimine sahip bir dil olarak, programcının bellek yönetimiyle uğraşmasını gerektirmez. Garbage collection, program tarafından ayrılan ancak artık ihtiyaç duyulmayan belleğe çöp denir . Çöp toplama, Lisp'te manuel bellek yönetimini basitleştirmek için 1959 civarında Amerikalı bilgisayar bilimcisi John McCarthy tarafından icat edildi. Çöp toplama, bir programın toplam işlem süresinin önemli bir bölümünü alabilir ve sonuç olarak performansı etkileyebilir.

Lisp, yapay zeka alanında önemli bir rol oynamış ve hala bazı uzman sistemler ve doğal dil işleme uygulamalarında kullanılmaktadır.

AutoLISP nedir?

AutoLISP, Autodesk firması tarafından geliştirilen AutoCAD yazılımında kullanılmak üzere özelleştirme ve otomasyon için oluşturulan bir LISP türevidir. AutoCAD, mimarlar, mühendisler ve tasarımcılar tarafından kullanılan bir bilgisayar destekli tasarım (CAD) programıdır. AutoLISP, AutoCAD'deki çeşitli görevleri otomatikleştirmek ve kullanıcıya özel komutlar ve işlevler eklemek için kullanılır.

AutoLISP, standart Lisp diline benzer bir sözdizimine sahiptir ancak AutoCAD'a özgü komutları ve işlevleri de içerir. AutoLISP, AutoCAD çizimlerini okuma, yazma ve düzenleme işlemlerini yapmak için kullanılabilir. AutoLISP, CAD projelerini hızlandırmak, tekrarlayan görevleri azaltmak ve kullanıcıların ihtiyaçlarına özelleştirilmiş çözümler sunmak için yaygın olarak kullanılır.

VisualLISP nedir?

VisualLISP, AutoLISP'in bir uzantısıdır ve AutoCAD yazılımında görsel programlama araçları sunar. VisualLISP, AutoCAD'de kullanıcı arayüzüne, diyalog kutularına ve grafik nesnelere erişim sağlar. Bu sayede, kullanıcı dostu arayüzlere sahip eklentiler oluşturmak ve karmaşık görevleri daha kolay gerçekleştirmek mümkün olur. Bu, AutoCAD çizimlerini yönetmek için daha güçlü ve karmaşık uygulamalar geliştirmeyi mümkün kılar.

AutoCAD'in içerisine entegre edilmiş olan VisualLISP Editor, AutoLISP kodlarının yazılması, düzenlenmesi, çalıştırılması, derlenmesi ve hata ayıklanması için gelişmiş bir ortam sağlar.

AutoCAD 2021 sürümünden itibaren varsayılan Visual Lisp editörü Visual Studio Code uygulamasıdır.

VisualLISP Editor'ü kullanmak için LISPSYS sistem değişkeni değeri 0 yapılıp AutoCAD yeniden başlatılmalı.
Sonrasında komut satırından VLIDE veya VLISP girilerek VisualLISP Editor çalıştırılır.

6 Ocak 2022 Perşembe

AutoLisp ile programlama: Orijine zumla

Yayınlama: 20/11/2010
Güncelleme: 6/1/2022

Belli bir düzende sıralı tekrar ettiğimiz Autocad komutlarını bir komutla tekrar yürütmek için Autocad içinde bulunan Lisp dilini kullanabiliriz. Lisp'e alternatif olarak Microsoft Office programlarında bulunan VBA'da (Visual basic makro dili) kullanılabilir ama Lisp daha yaygın olarak kullanılmaktadır.

Lisp ile AutoCAD programına yeni kullanışlı komutlar ekleme imkanına sahip oluruz. Bazı firmalar AutoCAD altında çalışan Lisp ile kodlanmış büyük kullanışlı programlar üretip satmaktadır.

Ayrıca internette bedava Lisp kodlarını da bulabilirsiniz.

Lisp Nedir?

LISP, List Processing (Liste işleme) kelimelerinin kısaltılmış halidir. John McCarthy'in icat ettiği eski ve güçlü programlama dillerinden biridir. Yapay zeka çalışmalarında kullanılır.

AutoLisp Nedir?

Lisp programlama dilinden türetilmiş bir makro dili olup, AutoCAD yazılımında kullanılmak üzere uyarlanmış ve geliştirilmiştir. AutoLisp ile kullanıcının AutoCAD'e yeni komutlar eklemesi ile daha verimli ve etkin kullanması sağlanmıştır.

AutoLisp ile AutoCAD'in hemen hemen tüm özelliklerine müdahale edilebilir, AutoCAD'in tüm komutları kullanılabilir. Hesaba dayalı otomatik çizimler oluşturulabilir, mevcut çizimler değiştirilebilir, dosyalar ile çalışılabilir, AutoCAD'in tüm sistem değişkenlerinde değişiklik yapabilir.

Visual LISP Nedir?

Visual LISP, AutoLISP programlama dilinin bir uzantısıdır. Visual LISP, AutoCAD'de yerleşik olarak kendi geliştirme ortamına sahiptir. İlk olarak 1997'de AutoCAD Sürüm 14 için ücretli bir eklenti olarak tanıtıldı, ancak Mart 1999'da AutoCAD 2000'e dahil edildi.

AutoLISP programlama dili tek başına da çok güçlüdür, ancak Visual LISP kullanarak AutoLISP ile çok daha fazlası yapılabilir. Visual LISP, Windows işletim sisteminin bölümlerine ve AutoLISP'in normalde erişemediği AutoCAD uygulamasına erişmenizi sağlar.

AutoLisp dosyaları salt metin editörleriyle (örneğin notepad) düzenlenebilse de AutoCAD içinde bulunan Visual LISP for AutoCAD ile düzenlenmesi daha kolay ve kullanışlı olacaktır. AutoLisp dosya uzantısı .lsp olmalıdır.

AutoLisp ile Programlama Nasıl Yapılır?

AutoCAD açık iken menüden Tools/AutoLisp/Visual Lisp Editor tıklayın.

3 Ekim 2020 Cumartesi

QuickBasic - 13: Grafik işlemleri-1

Yayınlama: Ekim 2019
Güncelleme: 14 Ağustos 2021

COLOR

Grafik işlemleri yaparken yazı ve zemin rengi belirlemek için kullanılan COLOR komutu, ekran moduna göre farklı şekillerde kullanılır.
SCREEN 0 : COLOR [renk][,[zeminrengi][,çerçeve]] 
SCREEN 1 : COLOR [zeminrengi][,palet] 
SCREEN 7-10 : COLOR [renk][,zeminrengi] 
SCREEN 10-13 : COLOR [renk] 
renk: Yazı rengi

zeminrengi: Arkaplan rengi

çerçeve: Monitörün kullanılan alanının dışında kalan alanın rengi. LCD ve LED monitörlerde görülmez. Tüplü manitörler içindir.

Her ekran modunun renk sayısı farklıdır.

Örnekler:


SCREEN 12: 256K renkten aynı anda en fazla 16 renk kullanılabilir.
SCREEN 13: 256K renkten aynı anda en fazla 256 renk kullanılabilir.
SCREEN 0: 0-31 renk. 16-31 arası yanıp sönen renkler.
PALETTE komutu ile renkler değiştirilebilir.

RENK KODLARI:



Renk kodları aşağıdaki tabloda olduğu gibidir.
Sayının;
0. biti mavi,
1. biti yeşil,
2. biti kırmızı renk içindir.
3. bit aktifse aynı renk parlak(açık renk) olacaktır.

17 Ağustos 2020 Pazartesi

QuickBasic - 23: Fare (mouse) kullanımı-4

Yayınlama: 17 Ağustos 2020

2) Metin ekranda fare imleç görüntüsünü değiştirme

Metin ekranda (SCREEN 0) fare imlecini değiştirmek için yazmaçlara aktarılacak değerler:
AX = &HA
BX = imleç tipi:
0: Yazılım imleci,
1: Donanım imleci

a)Yazılım imleci

AX = &HA
BX = 0
CX = AND maskesi. Varsayılan değer = &HFFFF
DX = XOR maskesi. Varsayılan değer = &H7700
CX ve DX yazmaçlarına aktarılan INTEGER değerin(2 bayt);
alt baytı(low byte): Karakter kodu,
üst baytı(high byte): Zemin rengi ve karakter rengini ayarlar.

Üst baytdaki;
1. karakter: Zemin rengini,
2. karakter: karakter rengi içindir.

Zemin rengi için 7'den büyük sayılar imlecin yanıp sönmesini sağlar(blinking)
alt bayt: 16'lık sayıda sağdaki 2 karakter. örneğin &H2FA3 için alt byte A3 dür.
alt baytı elde etmek için formül: SAYI AND &HFF
üst baytı elde etmek için formül: SAYI AND &HFF00
üst bayt: 16'lık sayıda soldaki 2 karakter. örneğin &H2FA3 için üst byte 2F dir.

Örnek 1:
DX = &H2F58

Kodların açılımı:
2: Yeşil zemin. 2=Yeşil renk
F: Beyaz yazı rengi. &HF=15=Beyaz renk
58: &H58 = 88 = X karakteri

Örnek 2:
DX = &H9E18
9: Mavi zemin.1+8=9. 1=Mavi renk. 7'den büyük renk kodları yanıp sönen imleç içindir.
E: Sarı yazı rengi. &HE=14=Sarı renk
18: &H18 = 24 = Yukarı ok karakteri

15 Ağustos 2020 Cumartesi

QuickBasic - 20: Fare (mouse) kullanımı-1

Yayınlama: 29 Temmuz 2020
Güncelleme: 15 Ağustos 2020

Kötü haber: Qbasic ve QuickBasicte doğrudan fare(mouse) kullanmak için bir komut bulunmuyor.

Belkide Qbasic'in piyasaya sürüldüğü tarihlerde fare kullanımı yaygın değildi ya da fare standartları tam oturmamıştı.

İyi haber: QuickBasicte DOS kesintilerini(interrupt) çalıştırmak için ve assembly kodlarını belleğe aktarıp çalıştırmak için kodlar bulunuyor. Böylece dolaylı olarak da olsa fare kullanılabiliyor.

DOS kesintisi ile fare çalıştırma

DOS işletim sistemi yapısı gereği Windows gibi çoklu görev(multitasking) özelliği yoktur. DOS, kesinti denilen bir özelliği kullanarak sahte çoklu görev işlevini yerine getirir.

DOS/BIOS kesinti listelerine bakıldığında çok sayıda kesinti olduğu görülecektir.

Kesinti listesi: Link1, Link2, Link3, Link4, Link5, Link6

Bu yazının konusu olan ve bize gerekli olan kesinti &H33 (51)
&H33
kesintisi bilgisayar fare donanımı ile ilgi fonksiyonları içerir.
Kullanılacak fare fonksiyonunun numarası AX yazmacına(register) aktarılır.

QuickBasic - 22: Fare (mouse) kullanımı-3

Yayınlama: 15 Ağustos 2020
Güncelleme: 22 Ağustos 2020

Fare imleç görüntüsünü değiştirme

Varsayılan fare(mouse) imleç(cursor) görüntüsü grafik ekranda standart ok şeklinde(yandaki resim), metin(text) ekranda ise içi dolu dikdörtgen kutu karakteri(karakter kodu=219) şeklindedir.
İstenirse grafik ve/veya metin ekranda imleç görüntüsü değiştirilebilir.
İşlemler ve yazmaçlara aktarılacak değerler farklı olduğu için iki ayrı başlık altında açıklama yapılacaktır.

1) Grafik ekranda fare imleç görüntüsünü değiştirme

Yazmaçlara aktarılacak değerler:
AX = &H9
BX = Etkin nokta X değeri (Hot Spot)
CX = Etkin nokta Y değeri
DX = Görüntü bilgilerini içeren bellek adresi (64 bayt)

İmleç görüntüsü bilgileri 64 bayt uzunluğundadır. 32 baytlık 2 set halinde hazırlanır. Her set 16x16 bitlik bir desende oluşturulur. Örneğin 16 satır ve her satırda 2 baytlık(16 bit) veri.

İlk desen 32 baytlık veri AND maskesi içindir.
İkinci desen 32 baytlık veri XOR maskesi içindir.

Bu iki desen, iki grafik düzlemi oluşturur. İki grafik düzleminde oluşan grafik görüntü ekrana önce AND ile sonra onun üzerine XOR ile basılır. Böylece nihai fare imleci görüntüsü oluşur.

İlk ve ikinci desendeki 0 ve 1 bit değerlerin çakıştırılmasıyla ekranda 4 farklı durum oluşur.
00: Siyah
01: Beyaz
10: Şeffaf (Transparan)
11: Zemin zıt rengi

13 Ağustos 2020 Perşembe

QuickBasic - 19: Grafik işlemleri-7

Yayınlama: 25 Temmuz 2020
Güncelleme: 13 Ağustos 2020

GET

Dosya işlemlerinde kullanılan GET komutundan farklı olarak grafik işlemlerinde kullanılan farklı bir GET komutu vardır. Kullanımları farklıdır.
Kullanımı:
GET [STEP] (x1-y1)-[STEP](x2,y2),değişkenadı[(indeks)]
Ekran üzerinde x1,y1 ile x2,y2 dikdörtgeni içinde kalan görüntü bilgisi belirtilen boyutlu değişkenadı'na aktarılır. Değişkene aktarılan görüntü PUT komutu ile ekranın istenilen konumuna basılır(aktarılır).

STEP : Göreceli koordinat kullanmak içindir. Bir önceki komutun aktif noktası 0,0 kabul edilir.
(x1,y1) : seçim alanı başlangıç köşe noktası
(x2,y2) : seçim alanı bitiş karşı köşe noktası
değişkenadı : Görüntü bilgilerinin aktarılacağı çok boyutlu değişken. Değişken boyutu görüntü bilgilerini aktaracak büyüklükte olmalıdır aksi halde GET komutu çalıştırılmaz. Illegal function call hatası verir.

Boyutun ne kadar olacağını hesaplamak için kullanılan formül QuickBasic yardım'da verilmiştir.
4+INT(((x2-x1+1)*(düzlemdeki pikselin bit sayısı)+7)/8)*düzlem*((y2-y1)+1)
Ekran

Modu
Bir düzlemdeki bir

pikselin bit sayısı
Düzlem

(Ekran sayfası)
1 2 1
2 1 1
7 1 4
8 1 4
9 1 2
10 1 2
11 1 1
12 1 4
13 8 1
Örneğin, SCREEN 2, sol üst köşe (0,0) sağ alt köşe (32,32) için değişkenin bayt cinsinden gerekli boyutu:
= 4 + INT ((33 * 1 + 7) / 8) * 1 * (33)
Sonuç = 169 bayt.

5 Ağustos 2020 Çarşamba

QuickBasic - 21: Fare (mouse) kullanımı-2

Yayınlama: 5 Ağustos 2020

Fare konumunu değiştirme

Çoğunlukla fare konumunu kullanıcı fareyi hareket ettirerek değiştirir ancak gerekirse kodlarla da farenin konumunu değiştirilebilir.
Bu işlem için kesinti çağrılmadan önce yazmaçlara aşağıdaki değerler aktarılır. Sonra kesinti çağrılır.
AX = &H4
CX = Farenin X konumu
DX = Farenin Y konumu
inreg.ax = &H4
inreg.cx = 100 'fare X konumu
inreg.dx = 120 'fare Y konumu
CALL INTERRUPT(&H33, inreg, outreg)
Örnek 1:
' ©2020 Mesut Akcan
' mesutakcan.blogspot.com
'$INCLUDE: 'qb.bi'
DEFINT A-Z
CONST goster = 1, gizle = 2
CLS
DIM SHARED inreg AS RegType, outreg AS RegType
inreg.ax = &H0
Kesinti
IF outreg.ax = &H0 THEN
	PRINT "Fare yok ya da kurulu değil!": END
END IF
CLS
FareIkonu goster
FOR satir = 4 TO 20 STEP 4
	FOR Sutun = 20 TO 60 STEP 20
		LOCATE 1, 1: COLOR 7
		PRINT USING "Fare konumu: Satır:## Sütun:##"; satir; Sutun
		LOCATE satir, Sutun - 2: COLOR 10: PRINT "->"
		x = (Sutun - 1) * 8
		y = (satir - 1) * 8
		FareKonumu x, y
		SLEEP 1
	NEXT
NEXT

SUB FareIkonu (durum%)
	inreg.ax = durum%
	Kesinti
END SUB

SUB FareKonumu (x%, y%)
	inreg.ax = &H4
	inreg.cx = x%
	inreg.dx = y%
	Kesinti
END SUB

SUB Kesinti
	CALL INTERRUPT(&H33, inreg, outreg)
END SUB
Örnek 2:

18 Temmuz 2020 Cumartesi

QuickBasic - 18: Grafik işlemleri-6

Yayınlama: 18 Temmuz 2020

PAINT

Kullanımı:
PAINT [STEP] (x,y)[,[dolgu] [,[çerçeverengi] [,arkaplan]]]
Belirtilen dolgu rengi veya deseni ile kapalı şekil içini boyar(doldurur)
Doldurma işlemi (x,y) koordinatından başlar. Şekil kapalı değilse taşıp ekranı doldurur.
STEP kullanıldığında son çizim konumu 0,0 kabul edilip göreceli koordinat uygulanır.
dolgu : Dolgu rengini belirten sayısal değer ya da deseni belirten karakter dizisi olmalıdır.
çerçeverengi : Dolgu yapılacak şeklin rengi (sınır çizgi rengi)
arkaplan : Sınırın sonlandırılması kontrol edilirken atlanacak "arka plan döşemesi dilimini" veren bir karakter dizisi değeri. Bitişik noktalar boya rengini gösterdiğinde resim sonlandırılır.
Arka plan döşemesi dilimi belirtmek, önceden boyanmış bir alanı boyamanıza izin verir.
Arka plan belirtilmediğinde varsayılan değer CHR$(0) olur.

Desen : 8 bit genişliğinde ve 64 bayta kadar olan bir dolgu deseninin tasarımıdır.

Desen dizesinde, her bayt, noktaları koyarken x ekseni boyunca 8 biti maskeler.
Bu kutucuk maskesini oluşturmak için sözdizimi şöyledir:

14 Temmuz 2020 Salı

QuickBasic - 17: Grafik işlemleri-5

Yayınlama: 16 Temmuz 2020

DRAW

Karakter kodlarıyla grafik ekranda çizim yapar.

Kullanımı:
DRAW "çizimkodları"
DRAW komutu çizim kodları:

Çizgi çizme kodları:
U : Yukarı (Up)
D : Aşağı (Down)
L : Sola (Left)
R : Sağa (Right)
E : Yukarı sağa çapraz
F : Aşağı sağa çapraz
H : Yukarı sola çapraz
G : Aşağı sola çapraz

Bu kodlar uygulandığında çizim konumu değişir. Örneğin U10 ile çizim konumu çizgi çizerek 10 piksel yukarı gider.
Verilen komutlar son nokta konumunu esas alarak çizim yapar.
Daha önceden konum belirten ya da değiştiren bir kodlama yoksa konum ekranın ortası alınır.
B : Çizgi çizmeden konum değiştirir(Blind). BL5 : Konum, çizgi çizmeden 5 piksel sola.
N : Çizgi çizer ancak konum değişmez. NR15 : Sağa 15 piksel çizgi ancak konum değişmez.

Örnek 1:

10 Temmuz 2020 Cuma

QuickBasic - 16: Grafik işlemleri-4

Yayınlama: 11 Temmuz 2020

LINE

Ekranda belirtilen 2 koordinat noktası arasına çizgi, dikdörtgen veya içi dolu dikdörtgen çizer.

Kullanımı:
LINE [[STEP] (x1,y1)]-[STEP] (x2,y2) [,[renk][,[B[F]][,stil]]]
(x1,y1) : Çizginin başlangıç noktası. (x1,y1) belirtilmediğinde bir önceki komutun aktif noktası alınır. Bir öncesinde nokta ile ilgili bir komut yoksa ekranın orta noktası alınır.
SCREEN 12
LINE -(0,0) 'ekranın orta noktasından 0,0 noktasına çizgi çizer
(x2,y2) : Çizginin bitiş noktası
STEP : Bir önceki çizim komutunun noktası 0,0 noktası olarak referans alınır. Göreceli koordinat sistemi içindir.
renk: Çizgi ya da dolgu rengi
B : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan dikdörtgeni çizer
BF : Çapraz köşeleri (x1 , y1) ve (x2 , y2) olan içi renk ile dolu dikdörtgeni çizer.
stil : Çizgi stili. Düz, noktalı veya kesik çizgi. BF kullanıldığında stil dikkate alınmaz.

Örnek 1:
SCREEN 7
CLS
LINE (0, 10)-(100, 10), 12
'(0,10) ile (100,10) arası türkuaz çizgi

LINE -(50, 60), 13
'x1,y1 belirtilmediği için
'önceki çizginin x2,y2 (100,10) değerleri alındı
'(100,10) ile (50,60) arasına kırmızı çizgi

LINE -(0, 10), 14
'(50,60) ile (0,10) arasına sarı çizgi
Örnek 2:

4 Temmuz 2020 Cumartesi

QuickBasic - 15: Grafik işlemleri-3

Yayınlama: 4 Temmuz 2020

PRESET

Kullanımı:
PRESET [STEP] (x , y) [, renk]
PRESET komutu PSET komutu gibi grafik ekranda koordinatları(x,y) belirtilen konuma belirtilen renk ile nokta koyar.
PSET komutundan farkı renk belirtilmezse zemin rengi ile nokta koyar (koordinata zemin rengiyle nokta koyduğu için silme işlemi uygulanmış olur)
STEP olursa bir önceki nokta referans alınarak göreceli koordinat sistemi kullanılır.

Örnek 1:

DEFINT A-Z
SCREEN 7
COLOR , 4
A = 10
FOR x = 0 TO 50
    FOR y = 0 TO 20
        ' PSET (x + A, y + A), 14
        PRESET (x + A, y + A), 14 'Nokta koy
    NEXT
NEXT
SLEEP
FOR x = 0 TO 50
    FOR y = 0 TO 20 STEP 3
        PRESET (x + A, y + A) ' Sil
    NEXT
NEXT
Örnek 2:

11 Haziran 2020 Perşembe

QuickBasic - 14: Grafik işlemleri-2

Yayınlama: 11 Haziran 2020

VIEW

Sonraki grafik komutlarına çıktı için ekran sınırlarını belirler. Fiziksel ekran üzerinde sanal çizim alanı oluşturur(port). Ekran içinde ekran gibi.

Kullanımı:
VIEW [SCREEN] (x1,y1)-(x2,y2) [,renk][,çerçeve]
Herhangi bir parametre girilmezse varsayılan ekranı tanımlar.

SCREEN parametresi kullanıldığında sonraki çizim komutlarında ekranın mutlak koordinat sistemine göre işlem yapılacağını belirtir.
Normalde yani SCREEN parametresi kullanılmadığında göreceli koordinat sistemi kullanılır.

Oluşturulan ekranın;
sol üst köşesi (x1,y1) 0,0 olarak,
sağ alt köşesi (x2,y2) VIEW de belirtilen genişlik ve yükseklik olur (x2-x1, y2-y1)

renk: Belirtilen renk ile tanımlanan alan doldurulur. Altta kalan alan silinir. Belirtilmezse silme olmaz.

çerçeve: Tanımlanan alanın kenarlarına verilen renk kodu ile sınır çizgileri çizilir. Belirtilmezse çizilmez.

Örnek:
SCREEN 12
VIEW (50, 50)-(300, 300), 2, 14
LOCATE 1, 1: PRINT "VIEW"
CIRCLE (0, 0), 250, 15 ' oluşturulan ekranın göreceli koordinatları kullanılır
SLEEP
VIEW SCREEN (50, 50)-(300, 300), 3, 11
LOCATE 1, 1: PRINT "VIEW SCREEN"
CIRCLE (0, 0), 250, 11 ' fiziksel ekranın mutlak koordinatları kullanılır
SLEEP
VIEW (200, 200)-(400, 400), 4
CIRCLE (100, 100), 50
LOCATE 14, 27: PRINT "Silinecek !"
SLEEP
CLS 'aktif VIEW siler
LINE (0, 0)-(200, 200), 14
LINE (0, 200)-(200, 0), 14
SLEEP
VIEW 'Fiziksel ekran
LINE (0, 0)-(200, 200), 15
LINE (0, 200)-(200, 0), 15

VIEW PRINT

2 Haziran 2020 Salı

Qbasic, QuickBasic Alıştırma Soruları 1-10

Qbasic, QuickBasic programlama dili ile ilgili alıştırma soruları:
  1. Kullanıcının girdiği metni tersten yazdırın.
  2. Kullanıcının girdiği 10 kişi adını alfabetik sırayla ekrana yazdırın.
  3. Kullanıcının girdiği 10 sayıyı toplayıp yazdırın
  4. Kullanıcının girdiği 10 sayının ortalamasını yazdırın.
  5. 1-100 arası sayıların toplamını yazdırın.
  6. 1-100 arası sayıların çift olanlarının toplamını yazdırın.
  7. 1-100 arası sayıların 4'e tam bölünenleri yazdırın.
  8. Kullanıcının girdiği isimlerden benzersiz olanları listeleyin.
  9. Kullanıcının girdiği metindeki sesli harfleri yazdırın.
  10. Kullanıcının girdiği metni hecelerine ayırarak yazdırın.
Soruların cevaplarını yorum olarak yazabilirsiniz.
Ayrıca burada olmayan soruları yorum olarak yazabilirsiniz.

1 Ocak 2012 Pazar

AutoLisp Kodlarıyla Yıldız Çizme

AutoCAD'de verilen yarıçap ölçüsünde yıldız çizmek için iki farklı AutoLisp kodları aşağıdadır. Kodlar İnşaat Mühendisi Mehmet Şahin Güvercin'e aittir. Kendisine teşekkür ederiz.


Yıldız çizen AutoLisp Kodu. Örnek 1

7 Eylül 2008 Pazar

Api Guide v3.7

Visual basic programlama dili ile ilgilenenler bazı konularda VB'nin yetersiz ya da yavaş olduğunu bilirler. Bu açığı kapatmak için ise Windows API'lerine başvurur.

Visual Basic kullananlar için hazırlanmış Api Guide programı 900 kadar Windows API'sini alfabetik veya grup olarak listeleliyor.

Program bu apilerin açıklamalarını, parametrelerini VBasic ve .NET için uygulama örneklerini ve benzer API'leri de gösteriyor.

Web sitesi
3.7 sürümünü İndirmek için tıklayın 2.20 MB