05.05.2011 15:15    

k005
Merhaba arkadaşlar;

belirli bir point ten 50 birim öteye bir yazı yazdırmak istiyorum. bu 50 birim sadece x yönünde olacak. y sabit. bunu nasıl yapabilirim ?

Kod:

(command "text" xyz1 "@50<0" 1 0 (strcat "="(rtos temelbt)))

05.05.2011 16:39    

ProhibiT
Kod:

(setq pnt (getpoint)) ;;;bahsedilen belirli noktanın pnt olarak tanımlı olduğunu kabul ettim.
(command "text" (polar pnt 0 50) 1 0 (strcat "=" (rtos temelbt)))

Burada polar fonksiyonu (Polar Point Angle Distance) şeklinde kullanılıyor. Angle değişkeninin temsil ettiği açıyı radian cinsinden girmelisiniz. kolay gelsin...

05.05.2011 16:46    

k005
Alıntı
ProhibiT :

hocam çok teşekkür ettim. tamamdır..

06.05.2011 06:40    

ProhibiT
İlk aklıma geliveren polar komutu olduğu için yazıvermişim. Aslına bakarsanız, bu tür noktadan yeni nokta türetme işlemlerinde ben daha çok mapcar ve lambda fonksiyonlarının kombinasyonunu kullanıyorum. Sizin veya başka arkadaşların işine yarayabilir düşüncesiyle paylaşmak istedim. Aynı örneği ele alırsak.
Kod:

(setq pnt (getpoint) npt (mapcar '(lambda (p1 p2) (+ p1 p2)) pnt (list 0.0 50.0 0.0)))

Bu yöntemle bellirli bir noktadan, belirlenen kriterde yeni noktalar üretilebileceği gibi, iki noktanın orta noktasını bulmak ta çok pratik...
Kod:

(setq n1 (getpoint "\nBirinci noktayı seçiniz: ")
        n2 (getpoint "\nİkinci noktayı seçiniz: ")
        mp (mapcar '(lambda (p1 p2) (/ (+ p1 p2) 2.0)) n1 n2))

Bu şekilde n1 ve n2 noktalarının orta noktası mp olarak elde edilir.
örnekte görüldüğü gibi bir (veya daha fazla) liste alınır, yeni bir liste üretilir.
mapcar lambda kullanımı bununla da sınırlı değil, bir veya birden fazla nokta listesi için de pek çok işlemler yapılabilir.

kolay gelsin...

> 1 <
Copyright © 2004-2022 SQL: 0.99 saniye - Sorgu: 55 - Ortalama: 0.01801 saniye