Thứ Ba, 6 tháng 4, 2010

Hướng dẩn viết lisp bài 13:

Bạn nên theo dỏi theo tên bài viết tăng từ nhỏ tới lớn thì mới đúng trình tự!

Vấn đề là bây giờ bạn muốn cái text đi từ từ thôi nghĩa là khoảng cách di chuyển nhỏ lại nhưng lại mới biết cách xác định trung điểm từ hai điểm. Sau đây mình trình bày thêm 1 cách xác định 1 điểm bằng lisp nửa. Hàm Polar cú pháp như sau:
(setq c (polar a goc dodai)) xác định điểm c từ điểm a với goc và dodai.
Cũng cái lisp trên nhưng bây giờ mổi lần move cái text đi bằng 1/10 khoảng cách ab thôi:

(defun c:tlkt ()
(setq a (getpoint "\nChon diem viet: "))
(setq b (getpoint a"\nChon diem den: "))
(setq dolon (getvar "viewsize"))
(setq dolonchu (/ dolon 30))
(setq daiab (distance a b))
(setq dodai (/ daiab 10))
(setq gocab (angle a b))
(setq c (polar a gocab dodai))
(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")
(command ".TEXT" "m" a dolonchu 0 "tailieukythuat.com")
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".ERASE" "last" "")
(princ)
)

Giải thích:
-Chọn điểm đầu tiên là a, điểm thứ hai là b.
-Đo độ cao màn hình gán cho dolon.
-Lấy dolon chia cho 30 gán cho biến dolonchu.
-Do khoảng cách từ a tới b gán cho biến daiab.
-Chia daiab cho 10 gán cho biến dodai.
-Đo góc ab tạo với trục x gán cho biến gocab.
-Dùng hàm Polar xác định điểm c từ điểm a, đi theo góc gocab với khoảng cách dodai
-Tạo text Style và viết dòng chử tại điểm a độ lớn bằng dolonchu nội dung tailieukythuat.com.
-Dừng 1 lát.
-Move cái text đó từ a đến c.
-Làm hai bước trên 10 lần.
-Dừng 1 lát.
-Xóa cái text đó đi.

Không có nhận xét nào:

Đăng nhận xét