Tải bản đầy đủ (.doc) (185 trang)

Điều khiển máy vẽ dùng vi xử lý

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (772.71 KB, 185 trang )

Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG
----------------------

LUẬN VĂN TỐT NGHIỆP
ĐỀ TÀI:

ĐIỀU KHIỂN MÁY VẼ
BẰNG VI XỬ LÝ

GVHD : THẦY HOÀNG MINH TRÍ
SVTH : TRẦN HOÀI NAM
MSSV : 49700926

Lời cảm ơn :
Em xin chân thành cảm ơn thầy Hoàng Minh Trí đã tận tình hướng


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

dẫn,giúp đỡ và động viên em trong suốt thời gian thực hiện bài luận văn tốt
nghiệp .
Em xin chân thành cảm ơn các thầy cô trường ĐHBK ,đặc biệt là các
thầy cô Bộ môn ĐKTĐ bởi những kiến thức , những bài học bổ ích mà thầy


cô đã truyền dạy cho em trong 5 măm học.


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

PHẦN I
GIỚI THIỆU
1/LỜI GIỚI THIỆU

Trước đây, ở các máy cắt kim loại thông thường, việc điều khiển các chuyển
động cũng như thay đổi vận tốc của các bộ phận, máy đều thực hiện bằng tay. Với
cách điều khiển này thời gian phụ khá lớn, nên không thể tăng năng suất lao động
cũng như đảm bảo độ chính xác của vật gia công.
Do đó để giảm thời gian phụ, ta cần thiết tiến hành tự động hoá quá trình điều
khiển. Và phương pháp gia công tự động ra đời với các dấu tì, cam trên trục phân phối
v.v…nhưng vẫn chưa đáp ứng được nhu cầu sản suất, vì nó rút ngắn được thời gian phụ
nhưng thời gian chuẩn bò sản suất sẽ dài. Nhược điểm này không đáng kể nếu như sản
suất được số lượng lớn, nhưng với sản suất nhỏ, mặt hàng phải thay đổi thường xuyên,
loại máy này trở nên bất tiện và không kinh tế.
Điều này hình thành nhu cầu tìm một phương pháp điều khiển mới, đảm bảo
được thời gian hiệu chỉnh máy để gia công từ loại chi tiết này sang loại chi tiết khác
nhanh hơn. Và phương pháp điều khiển theo chươnh trình ra đời để đáp ứng yêu cầu
đó
Điều khiển theo chương trình là một dạng điều khiển tự động mà tín hiệu điều
khiển (tín hiệu ra) được thay đổi theo một qui luật đã được đònh trước. Nói cách khác,
trên máy điều khiển theo chương trình, thứ tự giá trò của chuyển động, cũng như thứ tự
của các bộ phận máy, đóng mở các hệ thống làm nguội, bôi trơn, thay dao… đều được
thực hiện đúng theo một trình tự đã được lập trình sẵn. Các cơ cấu mang chương trình

này được đặt vào thiết bò điều khiển và máy sẽ làm việc tự động theo chương trình đã
cho.
Nếu các chương trình trên được ghi lại bằng các dấu tì, bằng hệ thống cam,
bằng mẫu chép hình… ta gọi hệ thống điều khiển đó là hệ thống điều khiển phi số.
Nếu các chương trình được biểu thò bằng các chữ số dưới dạng mã hiệu, ta gọi đó là
hệ thống điều khiển theo chương trình số.
Như vậy điều khiển theo chương trình số là một quá trình tự động cho phép
đưa một cơ cấu di động từ vò trí này đến vò trí khác bằng một lệnh. Sự dòch chuyển
này có thể là lượng di động thẳng hay góc quay theo các bậc tự do.
Trong nhiều trường hợp, phương pháp điều khiển theo chương trình số được
thiết kế tự động hoá việc di động một cơ cấu từ vò trí này đến vò trí khác, ta gọi là
“điều khiển theo điểm”. Nhưng ta cũng thực hiện dễ dàng khi rút ngắn vô hạn khoảng
cách giữa hai điểm di động kế tiếp nhau và sẽ đạt được một quá trình điều khiển q
đạo gọi là “điều khiển theo đường”.
Phương pháp điều khiển chương trình số có thể dùng để di động bất kì một cơ


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

cấu nào được truyền động bằng cơ. Phạm vi sử dụng của nó rất rộng, nhưng chủ yếu
là tự động hoá máy công cụ, vì lónh vực này bao gồm việc điều khiển dao cắt bằng
các chữ số.
Chương trình ghi bằng các chữ số được thực hiện ở ngoài máy, dưới dạng băng
xuyên lỗ, băng từ, đóa từ, film… Các chương trình này có thể cất giữ vào kho, ngăn tủ.
Khi cần sử dụng ta chỉ cần nạp nó vào máy, để máy có thể thực hiện chương trình và
điều khiển các chuyển động tương đối giữa dao và phôi.
Vì làm các chương trình số có thể tiến hành xa máy và máy có hệ thống đo
lường riêng, nên hệ thống này có thể thay đổi dễ dàng và nhanh chóng.

Dựa trên phương pháp điều khiển vò trí theo chương trình số đã nêu, đề tài của
luận văn này là: ”Điều khiển máy vẽ bằng vi xử lý” . Máy vẽ được đề cập ở đây là
một máy vẽ có khả năng vẽ liên tục các đường nét của một hình cho trước (của
AutoCad).

2/ SƠ LƯC VỀ LUẬN VĂN

* Luận văn có nhiệm vụ thiết kế một máy vẽ có khả năng đọc được các tập
tin (file) .DXF của AutoCad , sau đó đònh dạng lại file.DXF này (có nghóa là tạo ra
một file.TXT chứa các thông tin về điểm, đường cần vẽ ). Việc đònh dạng được thực
hiện trên máy tính (PC) , cuối cùng PC sẽ truyền lần lượt những thông tin trong
file.TXT xuống vixử lý 8952 đề thực hiện thao tác vẽ.
* Những công việc cần thực hiện:
- Phần cứng : thiết kế mạch giao tiếp giữa PC và 8952 theo chuẩn RS-232.
- Phần mềm:
>Lập trình cho việc đọc và đònh dạng file.DXF trên PC (dùng DELPHI).
>Lập trình cho vi xử lý 8952 thực hiện thao tác vẽ.

3/ỨNG DỤNG CỦA ĐỀ TÀI

Với cách điều khiển cùng một lúc sự dòch chuyền theo 2 trục X,Y của bút vẽ
để di chuyển nó đi theo một đường xác đònh , đề tài khẳng đònh được sự tối ưu và khả
thi của việc điều khiển vò trí liên tục đối với các máy công cụ , và là nền tảng cho
việc thiết kế máy khoan , máy cắt…
Để có thể ứng dụng vào trong sản suất , cụ thể là trong cắt may, đòi hỏi chúng
ta phải có những mạch hồi tiếp về từ các cơ cấu chấp hành , những động cơ có công
suất lớn hơn với độ tin cậy cao hơn.

PHẦN II
CÁC THIẾT BỊ ĐỒ HỌA



Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

1/ MỘT SỐ THIẾT BỊ ĐỒ HỌA THÔNG DỤNG

a/ Thiết bò quét Raster :
Thiết bò quét Raster (gọi tắt là Raster) cũng là một loại thiết bò thể hiện
(màn hình) chính. Thiết bò Raster thể hiện hình ảnh từ những điểm màu thay vì
đường. Mỗi điểm còn gọi là pixel.
Giới thiệu một số thiết bò Raster :
-Màn hình (Monitor):
Màn hình hiển thò trong hệ thống đồ họa máy tính là cầu nối chính trong
việc trao đổi thông tin giữa người sử dụng và hệ thống. Có nhiều loại công nghệ được
sử dụng để phối hợp các loại màn hình đồ họa.
Độ phân giải liên quan đến khả năng màn hình thể hiện các chi tiết. Các
màn hình đạt đến độ phân giải 1280x1024, ở đây các con số thể hiện các điểm có thể
phân biệt trên màn hình.
Sơ đồ phân loại :
Màn hình
Quét dòng

Quét vector
Ống nhớ

CRT làm tươi

Đơn sắc


Màu
Tinh thể lỏng

CRT màu

Màn hình phẳng

Bảng Plasma

Phát quang
điện tử

Hình: Các công nghệ sử dụng trong cấu tạo thiết bò hiển thò đồ họa
Các ký tự văn bản được hình thành từ các mẫu điểm. Đường thẳng và cung
được hình thành từ một dãy các điểm thích hợp. Và một vùng màn hình có thể được tô
màu ; đơn giản là tất cả các điểm trong vùng được lập cùng một màu.
Ảnh Raster được đặt trong một vùng nhớ gọi là vùng đệm khung (frame
buffer). Thuật ngữ frame để chỉ một ảnh đơn. Trong một vùng đệm khung, với trường
hợp hai cấp thì chỉ cần một bit cho một điểm, khi giá trò của bit là 0, thì điểm tương
ứng của ảnh có màu trắng, còn nếu là 1 thì điểm tương ứng có màu đen. Với ảnh màu,
để biểu diễn mỗ điểm cần nhiều bit hơn.
Vùng đệm khung :


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

Vùng đệm khung chiếm rất nhiều bộ nhớ: giả sử kích thước hình là r dòng, c

cột và cần b bit cho một điểm, thì cần r*c*b bit. Một thiết bò Raster chất lượng cao có
thể có r=1024, c=1024, b=24, như thế cần 25 triệu bit (3MB). Như thế vùng đệm này
nằm ở đậu và làm sao truy cập được chúng.
Với một số hệ Raster, vùng đệm khung thực sự là một phần bộ nhớ của máy.
Chúng được gọi là thiết bit-maped : bộ xử lý có thể truy xuất từng điểm, và có một
mạch logic riêng để làm tươi màn hình. Để tạo ảnh ứng dụng sẽ ghi màu (là giá trò)
trực tiếp lên vò trí bộ nhớ thích hợp. Tại cấp thấp nhất, sẽ có những chỉ thò máy làm
việc này. Tuy nhiên để tiện lợi người ta tạo thủ tục SetPixel(row,col,A) để nạp giá trò
A cho điểm tại (row,col).
-Máy in kim:
Cơ cấu in của máy in ma trận điểm là tập hợp từ 7 đến 24 cây kim cứng sắp
xếp trên đầu in, di chuyển theo phương nằm ngang trên mặt tờ giấy. Các máy in này
làm việc như thiết bò quét dòng và cần có sự chuyển đổi cho các hình ảnh dạng quét
vector. Việc in màu thực hiện nhờ sử dụng ruyban màu. Các màu bổ sung được tạo ra
bằng cách gõ hai vùng đệm trên ruyban lên cùng một điểm trên giấy.
-Máy in, vẽ phun:
Cũng là thiết bò quét dòng (raster scan), nó là thiết bò in màu rẻ tiền. Cơ cấu
của nó gồm các đầu vòi mực gắn ở đầu in, di chuyển trên bề mắt tờ giấy và phun mực
với màu sắc khác nhau. Các vòi phun được gắn với các hốc mực bằng các rãnh rất
nhỏ bao bọc bởi các tinh thể áp điện. Một xung điện đặt vào tinh thể sẽ tạo ra một cái
giật nhẹ, làm bắn ra một giọt mực. Độ phân giải của máy in này được quy đònh bởi
kích thước giọt mực, hay là kích thước vòi phun tạo ra nó. Vòi phun thường rất nhỏ
nên khi in thường gặp một số vấn đề phức tạp.
-Máy in laser:
Là thiết bò quét dòng (raster scan), trong đó chùm tia lazer quét lên một cái
trống quay được tích điện dương, phủ bằng một lớp selen. Phần mặt trống bò chiếu bởi
chùm tia lazer sẽ bò mất điện tích dương. Những phần tích điện còn lại tương ứng với
những phần đen trên giấy. Một lớp bột tónh điện phủ lên các phần tích điện dương và
được truyền sang giấy. Một bộ vi xử lý trên máy in lazer sẽ thực hiện chuyển đổi sang
dạng quét dòng.

-Máy in tónh điện:
Là thiết bò nạp điện tích âm cho các phần của loại giấy được chế tạo đặc biệt,
sau đó làm cô đặc bột tónh điện dạng lỏng, tích điện dương lên tờ giấy. Bột tónh điện
sẽ phủ lên và làm tối phần giấy tích điện âm. Đây là thiết bò dạng quét dòng, chứa bộ
xử lý để thực hiện việc chuyển đổi.
b/ Thiết bò vẽ đường :
Có hai dạng thường gặp nhất của máy vẽ là dạng phẳng và dạng trống.
-Máy vẽ dạng phẳng:
Máy vẽ dạng phẳng truy cập đến các vò trí xy trên mặt phẳng bằng cách


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

chuyển động cần vẽ gắn trên bàn vẽ. Trên cần vẽ có gắn một cây viết vẽ có thể
chuyển động dọc theo trục x và trục y. Cây viết có thể hạ xuống hay nhấc lên, tùy
theo việc đường nét hay thay đổi vò trí cây viết. Tờ giấy được giữ trên bàn vẽ bằng
tónh điện hoặc chân không.
-Máy vẽ dạng trống:
Máy vẽ dạng trống có một vài điểm phức tạp hơn dạng phẳng, mặc dù các
chế độ hoạt động cơ bản là tương tự nhau. Trong máy vẽ dạng trống, tờ giấy được
cuốn lên trống vẽ sao cho không có sự trượt. Trống sẽ quay tới, quay lui, trong khi đầu
vẽ trượt trên một cần vẽ cố đònh, truy cập đến các điểm trên tờ giấy.
Nhận xét :
Các thiết bò vẽ đường (Line Drawing) chỉ có thể vẽ đường. Thông dụng nhất là
bút vẽ Plotter. Khi plotter vẽ đường, trước hết bút được di chuyển đến điểm đầu, đặt
bút xuống, sau đó bút di chuyển theo đường thẳng tới đầu kia của đường.
Các thiết bò vẽ đường có hệ tọa độ đònh sẵn cho bút vẽ, như trong hình dưới
đây :

y
(1023,767)
Pen
x
(0,0
Bút vẽ được chỉ đến một điểm cụ thể bằng cách gửi cho Plotter tọa độ của điểm.
Thiết bò vẽ đường có sẵn một số thủ tục cơ bản, ví dụ một số lệnh cho bút vẽ như :
• Pen_Up : nhấc bút
• Pen_Down : đặt bút
• Go_To (x,y) : di chuyển bút đến điểm (x,y)
• Get_Pen (i) : đổi bút hiện tại thành bút thứ i.
Những lệnh trên gọi là lệnh thiết lập chế độ (mode setting). Khi thiết bò nhận
được lệnh chúng sẽ thay đổi “trạng thái” máy cho đến khi có lệnh thiết lập chế
độ khác.
Thiết bò phải được gửi giá trò (x,y) theo hệ tọa độ của nó, gọi là tọa độ thiết bò.

2/ GIỚI THIỆU BÀN VẼ TRONG LUẬN VĂN

Máy vẽ được thiết kế trong luận văn này là máy vẽ được điều khiển theo
chương trình số.
Phần chính của máy vẽ gồm hai trục X,Y để điều khiển vò trí qua lại của bút
vẽ trong mặt phẳng bản vẽ và trục Z gắn trực tiếp với bút vẽ để điều khiển nhấc bút
lên hay hạ bút xuống.


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

Mỗi trục X,Y được cấu tạo gồm một động cơ bước có trục quay gắn liền với

một vitme . Vitme là một trục có răng xoắn, được mài kỹ. Nếu ta gắn một vật lên răng
xoắn của vitme thì khi động cơ quay, vitme sẽ chuyển chuyển động quay thành chuyển
động trượt của vật trên răng xoắn. Tùy theo chiều quay của động cơ là thuận hay
nghòch mà vật sẽ chuyển động tới hay lui trên răng xoắn.
Trục X được đặt lên vitme của trục Y, còn trục Z lại được đặt lên vitme của
trục X. Kết quả là khi chỉ quay một động cơ thì bút vẽ chỉ di chuyển theo một trục,
còn khi quay đồng thời hai động cơ thì bút vẽ sẽ di chuyển theo hai trục, và việc này
dẫn đến việc ta có thể vẽ được các đường xiên và là tiền đề cho việc vẽ các đường
cong.
Trục Z đơn giản chỉ là một nam châm điện có trục gắn với bút vẽ dùng để điều
khiển vò trí nhấc lên hay hạ xuống của nó. Khi có dòng điện đi qua nam châm, bút sẽ
được nhấc lên. Ngoài ra còn một số công tắc hành trình để việc điều khiển được chính
xác và dễ dàng.
Tìm hiểu hai động cơ bước của hai trục X,Y :
Hai động cơ bước trong mô hình được thiết kế như sau :
- Động cơ trục X :
o Quay thuận : đưa bút vẽ qua phải → chiều tăng x.
o Quay nghòch : đưa bút vẽ qua trái → chiều giảm x.
- Động cơ trục Y :
o Quay thuận : đưa bút vẽ lên trên → chiều tăng y.
o Quay nghòch : đưa bút vẽ xuống dưới → chiều giảm y.
Trục động cơ gắn với vitme có độ phân giải là 0.1mm ứng với một bước quay
của motor. Nghóa là khi động cơ quay một bước thì vitme xoay làm di chuyển vật gắn
trên nó 0.1mm. Với độ phân giải này, ta có thể vẽ được các đường nét khá mòn đòi
hỏi độ phân giải cao.
Khi vận hành, đầu chung của các động cơ nối lên nguồn DC 5V, các đầu còn
lại nối xuống mass hay không là do các bit điều khiển.

……Giới thiệu động cơ bước…..


Động cơ được dùng trong mô hình này là loại động cơ bước nam châm vónh
cửu đơn cực 6 đầu dây, điện áp làm việc 1.8VDC và góc bước là 1.8 độ.
Trục Z và các công tắc hành trình của mô hình :
Trục Z : Dùng nam châm điện 24VDC để điều khiển nhấc bút hay hạ bút. Nam châm
này cấu tạo chính gồm một cuộn dây quấn quanh lõi sắt có thể di chuyển tự do ở giữa.
Khi có dòng điện qua cuộn dây sẽ tạo ra một lực từ hút lõi sắt lên trên. Dựa vào tính
chất này ta gắn bút vẽ vào lõi sắt của nam châm để điều khiển vò trí nhấc lên hay hạ
xuống của bút vẽ.
Khi vận hành, một đầu dây của nam châm luôn nối với nguồn 24VDC, đầu còn lại
được nối với mass hay không là do 1 khóa BJT.


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

Để giữ cố đònh bút vẽ khi di chuyển hay đang vẽ, đồng thời để xác đònh trạng thái
nhấc lên hay hạ xuống của bút vẽ, người ta dùng một công tắc hành trình gắn liền với
trục tác động của nam châm. Công tắc này một đầu nối xuống mass, đầu kia nối với
một bit điều khiển (bit này bình thường được treo lên 5V). Khi bút vẽ nhấc lên thì bit
này = 0 và ngược lại, khi không nhấc thì bit = 1.
Khi muốn nhấc bút lên ta tác động vào khóa BJT → dòng điện đi qua cuộn dây → bút
được nhấc lên. Khi muốn hạ bút xuống công việc cũng tương tự như trên. Chú ý :
phải đọc công tắc hành trình của bút trước khi tác động vào BJT và phải ngưng kích
ngay khi bút đã đổi trạng thái vì nếu tác động lâu sẽ dẫn đến cuộn dây nam châm bò
cháy (nam châm DC làm việc ngắn hạn).
Các công tắc hành trình :
Trên mô hình có 4 công tắc hành trình (2 trên trục X, 2 trên trục Y) để xác đònh đầu
trục hay cuối trục tương ứng.
Các công tắc này một đầu được nối xuống mass, đầu còn lại nối về các bit điều khiển.


Nam châm điện
Công tắc
hành trình

Trục Z

Động cơ bước
Hình :Bàn vẽ.

PHẦN III
ĐỘC LẬP THIẾT BỊ
1/ĐỘC LẬP THIẾT BỊ

* Chúng ta đã gặp nhiều dạng “lệnh thiết bò” tùy theo thiết bò. Các thiết bò vẽ
đường như Plotter thì có các thủ tục Pen_Up, Pen_Down, Go_To (x,y). Thiết bò Raster
thì có cá thủ tục SetPixel, Line. Trong mọi trường hợp ta phải gửi đi tọa độ thiết bò, và
mỗi thiết bò cóù riêng hệ tọa độ đònh sẵn.


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

Điều đó gây ra hai vấn đề :
- Khó để tìm hiểu các ý tưởng và phương pháp cơ bản mà không biết chi tiết
về thiết bò.
- Khó thay đổi một ứng dụng viết cho thiết bò này sang thiết bò khác.
Như vậy cần phải “che giấu” chi tiết về thiết bò trong các thủ tục “điều khiển”
để có được dạng giao tiếp thống nhất cho ứng dụng.

Ví dụ : Chúng ta cần một thủ tục như Draw_Line(x1,y1,x2,y2:real) để vẽ
đường thẳng từ điểm (x1,y1) đến điểm (x2,y2).
Bên trong là những lệnh có thể phụ thuộc tọa độ thiết bò, nhưng chương trình
ứng dụng không cần biết chi tiết này. Vì vậy nó được xem như thủ tục độc lập
thiết bò.
* Xuất phát từ nhu cầu “Nếu ta dùng thiết bò đồ họa khác, mà không phải viết
lại chương trình điều khiển hoặc ngay cả không cần biên dòch lại, mà chỉ cần nối kết
chương trình điều khiển thiết bò mới”. Độc lập thiết bò sẽ giúp bạn làm được điều ấy
Để đảm bảo tính linh động, các tiêu chuẩn đồ họa đã thiết lập cho chương trình
ứng dụng các thay đổi tối thiểu, cho phép nó đònh đòa chỉ các thiết bò nhập khác nhau.
Khởi đầu, người lập trình tạo ra một hệ thống tọa độ mô hình, trong đó mô tả một đối
tượng gọi là Hệ tọa độ thực (World Coordinate_WC). Tiếp theo, người lập trình sẽ mô
tả một Hệ thống tọa độ thiết bò chuẩn (Normalized Device Coordinate_NDC), bằng
cách xác đònh các vùng hai chiều của bề mặt quan sát mà trên đó hình ảnh sẽ xuất
hiện. Sau đó các tọa độ thiết bò chuẩn sẽ chuyển sang tọa độ thiết bò (Device
Coordinate).
Hệ thống tọa độ thực
(WC)

Hệ thống tọa độ
chuẩn (NDC)

Hệ thống tọa độ thiết
bò (DC)

Thiết bò vật


Chương trình ứng dụng sẽ giao tiếp với hệ thống tọa độ chuẩn theo cách thức
phù hợp, không quan tâm đến thiết bò xuất được sử dụng. Do đó tạo ra được sự độc lập

thiết bò trong việc tạo ảnh của đối tượng.
*Tọa độ thiết bò chuẩn hóa (NDC – Normalized Device Coordinate) :
KGS (Graphic Kernel System – một hệ chuẩn quốc tế) đònh nghóa tọa độ thiết
bò được chuẩn hóa (NDC) là vùng hình vuông với góc thấp trái là (0,0) và góc cao
phải là (1,1), như trong hình dưới đây :
y

Display

1
(x2,y2)

y1

(x1,y1)

x1

1

x


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

Không gian NDC là hệ tọa độ chuẩn cho mọi thiết bò, và một lệnh như
Draw_Line() sẽ tự mở rộng khuôn này để vừa khớp với khuôn của thiết bò.
*Ánh xạ NDC lên thiết bò :

Mỗi lần xuất thủ tục LineNDC_() lên thiết bò phải ánh xạ hình vuông đơn vò
của hình vuông lớn nhất tên thiết bò gọi là hình vuông thiết bò. Nghóa là, cho điểm bất
kỳ P(x,y) trong NDC ta cần tính tọa độ thiết bò tương ứng Q(dx,dy) trong hình vuông
thiết bò, như trong hình dưới đây :

NDC

1
y

P

x

Largest Square

dy
1

Device
Coordinate space

Q

dx

Phép ánh xạ này phải tỉ lệ. Vì vậy dx phải ánh xạ tuyến tính theo x, sao cho :
dx=Ax+B
và dy=Cy+D
với A,B,C,D là hằng số.


2/ỨNG DỤNG VÀO ĐỀ TÀI:

- Sau đây là đoạn chương trình minh họa việc chuyển đổi tọa độ của các điểm ,
đường từ hệ tọa độ trong AutoCad sang hệ tọa độ trong PC và hệ tọa độ bàn vẽ.
- Khai báo biến:
p.x ; p.y :tọa độ trong AutoCad (Kích thước bản vẽ là Page_Width *
Page_Height )
PC_p.x ; PC_p.y :tọa độ trong PC (Bàn vẽ trong PC là phần tử
Image.canvas có kích thước 350*350).
Mv_p.x ; Mv_p.y :tọa độ trong bàn vẽ (Bàn vẽ của máy vẽ có kích thước
420*297).
- Procedure Chuyen_doi_toa_do ();


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

Begin
If (Page_Width div 350) > (Page_Height div 350)
then Scale:=Round(Page_Width div 350)+1
else Scale:=Round(Page_Height div 350)+1;
PC_p.x:=350 div 2 + p.x div Scale;
PC_p.y:=350 div 2 –p.y div Scale ;
Mv_p.x:=p.x*10; /* Mỗi bước của động cơ bút di chuyển được 0.1mm*/
Mv_p.y:=p.y*10;
End.

PHẦN IV

GIỚI THIỆU TẬP TIN .DXF
1/GIỚI THIỆU

Ngoài Autocad còn có rất nhiều phần mềm máy tính phục vụ cho các mục tiêu
khác nhau và có những thế mạnh khác nhau. Do đó, thế nào cũng có lúc nảy sinh nhu
cầu sử dụng bản vẽ ACAD trong những phần mềm khác, đặc biệt là các phần mềm đồ
họa.


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

Nếu các phần mềm máy tính khác cũng đọc được tập tin .DWG như
AUTOCAD thì không có vấn đề gì. Tuy nhiên, cấu trúc tinh vi của tập tin Autocad
.DWG được hãng Autodesk giữ kín, nhằm tạo cho Autocad ưu thế độc quyền khai thác
bản vẽ do chính mình tạo ra.
Nhưng để tạo tính tương thích của Autocad trên thò trường đồ họa, Autodesk đã
thực hiện chính sách “mở cửa” bằng cách trang bò cho Autocad khả năng kết xuất bản
vẽ của mình thành các dạng thức tập tin thông dụng cũng như đề ra một dạng thức tập
tin bản vẽ đơn giản hơn gọi là DXF (Drawing data eXchange Format) và cho công bố
rộng rãi cấu trúc của nó.
Ta có thể tìm thấy nhiều phần mềm lớn nhỏ khác nhau có khả năng đọc và ghi
tập tin bản vẽ ở dạng thức DXF. Quy cách ghi bản vẽ ở dạng thức DXF do hãng
Autodesk đề ra và được phổ biến rộng rãi.
Do ưu thế của Autocad trên thò trường các phần mềm thiết kế, DXF hiện đã trở
thành một tiêu chuẩn công nghiệp.

2/CẤU TRÚC FILE DXF :


Tập tin .DXF là một tập tin văn bản ASCII bình thường trong đó mô tả các quy
đònh của bản vẽ và mô tả từng đối tượng. Nói như vậy có nghóa là bạn có thể dùng
những chương trình soạn thảo văn bản để mở tập tin .DXF và sửa chữa nội dung của
nó. Cách thức ghi thông tin như vậy thường lớn, do đó Autocad còn cho phép bạn ghi
tập tin .DXF theo một dạng gọn hơn, không thông qua mã ASCII để mô tả bản vẽ. Đó
là trường hợp của tập tin .DXF dạng nhò phân (Binary DXF). Trong đề tài này chỉ
quan tâm đến DXF ASCII.
Về bản chất file DXF gồm những bộ mã và giá trò tương ứng. Những đoạn mã,
được hiểu như những nhóm mã cho biết dạng của giá trò theo sau. Sử dụng những
nhóm mã và giá trò, một file DXF được chia thành nhiều phần, bao gồm nhiều bảng
dữ liệu, mỗi bảng dữ liệu bao gồm một nhóm mã và dữ liệu tương ứng. Mã và giá trò
tương ứng nằm trên cùng dòng trong file DXF.
Mỗi phần bắt đầu bằng một nhóm mã 0 theo sau bởi chuỗi SECTION. Mỗi
phần bao gồm nhiều nhóm mã và giá trò đònh nghóa những phần tử của nó. Phần cuối
của một phân đoạn với ký tự 0 và theo sau bởi chuỗi ENDSEC.
Toàn thể cấu tạo của một file DXF có dạng như sau :
Phần Header :
Thông thường thông tin về bản vẽ được tìm trong phần này. Nó gồm có một
bảng dữ liệu về số của phiên bản Autocad và số lượng biến hệ thống. Mỗi thông số
chứa một tên biến và giá trò tương ứng của nó.
Phần CLASSES :
Giữ những thông tin cho trình ứng dụng – xác đònh đặc điểm classes, những
trường hợp đặc biệt trong BLOCKS, ENTITIES, và dữ liệu của mục OBJECTS.
Phần TABLES :
Phần này chứa những đònh nghóa của những ký hiệu sau đây :


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý


APPID (Application Identification Table)
BLOCK_RECORD (Block Reference Table)
DIMSTYLE (Dimension Style Table)
LAYER (Layer Table)
LTYPE (Linetype Table)
STYLE (Text Style Table)
UCS (User Coordinate System Table)
VIEW (View Table)
VPORT (Viewport Configuration Table)
Phần BLOCKS :
Chứa đònh nghóa của khối và bản vẽ mà gộp thành mỗi khối tham chiếu trong
bản vẽ.
Phần ENTITIES :
Phần chứa những đối tượng đồ họa trong bản vẽ, bao gồm những khối tham
chiếu (thực thể chèn vào).
Phần OBJECTS :
Chứa những đối tượng không đồ họa trong bản vẽ.
ENTITIES Section :
Phần này trình bày các nhóm mã tập trung vào đối tượng đồ họa. Các mã này
xuất hiện trong phần ENTITIES của một file DXF và được sử dụng bởi các ứng dụng
AutoLisp và ARX trong các danh sách đònh nghóa thực thể.
Nhóm mã sau ứng dụng cho các đối tượng ARC :
Nhóm mã Arc :
Group
codes

Description

100


Subclass marker (AcDbCircle)

39

Thickness (optional; default = 0)

10

Center point (in OCS). DXF: X value; APP: 3D point

20, 30

DXF: Y and Z values of center point (in OCS)

40

Radius

100

Subclass marker (AcDbArc)

50

Start angle

51

End angle


210

Extrusion direction. (optional; default = 0, 0, 1).
DXF: X value; APP: 3D vector


Luận văn tốt nghiệp
220, 230

Điều khiển máy vẽ bằng vi xử lý

DXF: Y and Z values of extrusion direction

Nhóm mã sau ứng dụng cho các đối tượng CIRCLE :
Nhóm mã Circle :
Group codes

Description

100

Subclass marker (AcDbCircle)

39

Thickness (optional; default = 0)

10


Center point (in OCS). DXF: X value; APP: 3D point

20, 30

DXF: Y and Z values of center point (in OCS)

40

Radius

210

Extrusion direction. (optional; default = 0, 0, 1).
DXF: X value; APP: 3D vector

220, 230

DXF: Y and Z values of extrusion direction

Nhóm mã sau ứng dụng cho các đối tượng ELLIPSE :
Nhóm mã Ellipse :
Group codes

Description

100

Subclass marker (AcDbEllipse)

10


Center point (in WCS). DXF: X value; APP: 3D point

20, 30

DXF: Y and Z values of center point (in WCS)

11

Endpoint of major axis, relative to the center (in WCS).
DXF: X value; APP: 3D point.

21, 31

DXF: Y and Z values of endpoint of major axis, relative to the center (in WCS)

210

Extrusion direction. (optional; default = 0, 0, 1).
DXF: X value; APP: 3D vector

220, 230

DXF: Y and Z values of extrusion direction

40

Ratio of minor axis to major axis

41


Start parameter (this value is 0.0 for a full ellipse)

42

End parameter (this value is 2pi for a full ellipse)

Nhóm mã sau ứng dụng cho các đối tượng LINE :


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

Nhóm mã Line :
Group codes

Description

100

Subclass marker (AcDbLine)

39

Thickness (optional; default = 0)

10

Start point (in WCS). DXF: X value; APP: 3D point


20, 30

DXF: Y and Z values of start point (in WCS)

11

End point (in WCS). DXF: X value; APP: 3D point

21, 31

DXF: Y and Z values of end point (in WCS)

210

Extrusion direction. (optional; default = 0, 0, 1).
DXF: X value; APP: 3D vector

220, 230

DXF: Y and Z values of extrusion direction

Nhóm mã sau ứng dụng cho các đối tượng POINT :
Nhóm mã Point :
Group codes

Description

100


Subclass marker (AcDbPoint)

10

Point location (in WCS). DXF: X value; APP: 3D point

20, 30

DXF: Y and Z values of point location (in WCS)

39

Thickness (optional; default = 0)

210

Extrusion direction. (optional; default = 0, 0, 1).
DXF: X value; APP: 3D vector

220, 230

DXF: Y and Z values of extrusion direction

50

Angle of the X axis for the UCS in effect when the point was drawn
(optional, default = 0); used when PDMODE is nonzero

Nhóm mã sau ứng dụng cho các đối tượng POLYLINE :
Nhóm mã Polyline :

Group codes

Description

100

Subclass marker (AcDb2dPolyline or AcDb3dPolyline)

10

DXF: always 0
APP: a "dummy" point; the X and Y values are always 0, and the Z value is
the polyline's elevation (in OCS when 2D, WCS when 3D)

20

DXF: always 0


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

30

DXF: polyline's elevation (in OCS when 2D, WCS when 3D)

39

Thickness (optional; default = 0)


70

Polyline flag (bit-coded); default is 0:
1 = This is a closed polyline (or a polygon mesh closed in the M direction).
2 = Curve-fit vertices have been added.
4 = Spline-fit vertices have been added.
8 = This is a 3D polyline.
16 = This is a 3D polygon mesh.
32 = The polygon mesh is closed in the N direction.
64 = The polyline is a polyface mesh.
128 = The linetype pattern is generated continuously around the vertices of
this polyline.

40

Default starting width (optional; default = 0)

41

Default ending width (optional; default = 0)

71

Polygon mesh M vertex count (optional; default = 0)

72

Polygon mesh N vertex count (optional; default = 0)


73

Smooth surface M density (optional; default = 0)

74

Smooth surface N density (optional; default = 0)

75

Curves and smooth surface type (optional; default = 0); integer codes, not
bit-coded:
0 = No smooth surface fitted
5 = Quadratic B-spline surface
6 = Cubic B-spline surface
8 = Bezier surface

210

Extrusion direction. (optional; default = 0, 0, 1).
DXF: X value; APP: 3D vector

220, 230

DXF: Y and Z values of extrusion direction

Nhóm mã sau ứng dụng cho các đối tượng SPLINE :
Nhóm mã Spline :
Group codes


Description

100

Subclass marker (AcDbSpline)

210

Normal vector (omitted if the spline is nonplanar)
DXF: X value; APP: 3D vector


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

220, 230

DXF: Y and Z values of normal vector

70

Spline flag (bit coded):
1 = Closed spline
2 = Periodic spline
4 = Rational spline
8 = Planar
16 = Linear (planar bit is also set)

71


Degree of the spline curve

72

Number of knots

73

Number of control points

74

Number of fit points (if any)

42

Knot tolerance (default = 0.0000001)

43

Control-point tolerance (default = 0.0000001)

44

Fit tolerance (default = 0.0000000001)

12

Start tangent--may be omitted (in WCS).

DXF: X value; APP: 3D point.

22, 32

DXF: Y and Z values of start tangent—may be omitted (in WCS).

13

End tangent--may be omitted (in WCS).
DXF: X value; APP: 3D point.

23, 33

DXF: Y and Z values of end tangent—may be omitted (in WCS)

40

Knot value (one entry per knot)

41

Weight (if not 1); with multiple group pairs, are present if all are not 1

10

Control points (in WCS) one entry per control point.
DXF: X value; APP: 3D point

20, 30


DXF: Y and Z values of control points (in WCS) (one entry per control point)

11

Fit points (in WCS) one entry per fit point.
DXF: X value; APP: 3D point

21, 31

DXF: Y and Z values of fit points (in WCS) (one entry per fit point)

Nhóm mã sau ứng dụng cho các đối tượng TEXT :
Nhóm mã Text :
Group codes

Description


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

100

Subclass marker (AcDbText)

39

Thickness (optional; default = 0)


10

First alignment point (in OCS)
DXF: X value; APP: 3D point

20, 30

DXF: Y and Z values of first alignment point (in OCS)

40

Text height

1

Default value (the string itself)

50

Text rotation (optional; default = 0)

41

Relative X scale factor—width (optional; default = 1).
This value is also adjusted when fit-type text is used.

51

Oblique angle (optional; default = 0)


7

Text style name (optional, default = STANDARD)

71

Text generation flags (optional, default = 0):
2 = Text is backward (mirrored in X),
4 = Text is upside down (mirrored in Y)

72

Horizontal text justification type (optional, default = 0) integer codes (not bit-coded)
0 = Left;1= Center; 2 = Right
3 = Aligned (if vertical alignment = 0)
4 = Middle (if vertical alignment = 0)
5 = Fit (if vertical alignment = 0)
See the following table for clarification

11

Second alignment point (in OCS).
DXF: X value; APP: 3D point.
This value is meaningful only if the value of a 72 or 73 group is nonzero (if the
justification is anything other than baseline/left)

21, 31

DXF: Y and Z values of second alignment point (in OCS)


210

Extrusion direction. (optional; default = 0, 0, 1).
DXF: X value; APP: 3D vector

220, 230

DXF: Y and Z values of extrusion direction

100

Subclass marker (AcDbText)

73

Vertical text justification type (optional, default = 0): integer codes (not bit- coded)
0 = Baseline; 1 = Bottom; 2 = Middle; 3 = Top
See the following table for clarification.


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

Dưới đây là 1 đoạn nhỏ của 1file .DXF với các thông tin về 1đoạn thẳng (LINE)
đi từ (X0,Y0,Z0) đến (X1,Y1,Z1) :
AcDbLine /* Bắt đầu đoạn LINE*/
10
/* Detect tọa độ X0*/
0.0

/* X0=0*/
20
/* Detect tọa độ Y0*/
0.0
/*Y0=0*/
30
/* Detect tọa độ Z0*/
0.0
/*Z0=0*/
11
/* Detect tọa độ X1*/
100.0
/*X1=100*/
21
/* Detect tọa độ Y1*/
50.0
/* Y1=50*/
31
/* Detect tọa độ X1*/
0.0
/*Z1=0*/
0

PHẦN V
GIẢI THUẬT VẼ
1/GIẢI THUẬT SINH ĐƯỜNG THẲNG
a/ Nguyên lý chung :
Trên mặt phẳng bất kỳ, một điểm được xác đònh bởi cặp 2 giá trò tọa độ : một
theo trục x và một theo trục y mô tả khoảng cách từ điểm đó đến các trục. Điểm
sẽ nằm trên đường thẳng khi giá trò tọa độ điểm thỏa mãn phương trình biểu diễn



Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

đường thẳng đó. Việc biểu diễn đường thẳng có rất nhiều phương pháp khác nhau.
Nếu 2 điểm với tọa độ (x1,y1) và (x2,y2) được sử dụng để xác đònh nên một
đường thẳng thì phương trình của đường thẳng qua hai điểm được viết lại như sau :
y − y1 y 2 − y1
=
Từ phương trình này chúng
x − x1
x 2 − x1
ta có thể xây dựng quá trình
vẽ các đường thẳng khi cho x biến thiên theo các khoảng ∆x và kết quả ta có thể
thu được giá trò của biến y thay đổi với các khoảng ∆y tương ứng (∆y=k∆x).
Do các đường thẳng được mô tả trong hệ tọa độ thực khi hiển thò trong máy
tính, hệ tọa độ chính là lưới nguyên nên bản chất của quá trình vẽ các đường
thẳng chính là sự nguyên hóa các tọa độ các điểm thuộc đường thẳng và vẽ các
pixel tương ứng.
Nguyên lý chung là cho một thành phần tọa độ x hay y biến đổi theo từng đơn
vò và tính tọa độ nguyên còn lại sao cho gần với tọa độ thực nhất. Việc quyết đònh
chọn x hay y biến đổi phụ thuộc vào độ rộng của đường thẳng.
b/ Giải thuật trung điểm sinh đường thẳng (MidPoint) :
Giải thuật điểm giữa (Midpoint) được Pitteway đưa ra những năm 1967 và
được VanAken áp dụng cho việc sinh các đường thẳng và đường tròn năm 1985
cho ra các công thức đơn giản và tạo được các điểm tương tự với giải thuật
Bresenham.
Giả sử điểm (xi,yi) là điểm hiện thời và với giải thuật Bresenham, việc quyết

đònh điểm A hay điểm B là điểm kế tiếp là việc lựa chọn giá trò y i+1 hay yi dựa vào
khoảng cách từ A→S hay từ B→S. Và như vậy giải thuật đã bỏ qua yếu tố đánh
giá đơn giản là : điểm M, trung điểm của đoạn AB, mà qua đó việc so sánh chỉ
đơn giản là quá trình xét xem M nằm trên hay dưới đường thẳng cần sinh.
Nếu M
nằm dưới
thì điểm A
được chọn,
nếu ngược
lại M nằm
trên
thì
điểm
B
được chọn.
Giả sử như
ta

phương
trình đoạn
thẳng được

A
M
B


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý


biểu diễn dưới dạng không tường minh cùng với các hệ số a,b như sau :
F(x,y) = ax+by+c = 0
Nếu đặt dx = x2-x1 và dy = y2-y1
Phương trình chuyển về dạng :
y = (dx/dy).x + B
Hay F(x,y) = dx.x-dy.y+B.dx = 0
Như vậy a=dx; b=-dy; c=B.dx
Với phương trình trên thì F(x,y) = 0 với mọi điểm (x,y) nằm trên đường thẳng,
F(x,y)>0 với các điểm nằm dưới đường và <0 với các điểm nằm phía trên đường
thẳng.
Đặt d = F(xi+1,yi+1/2) là trung điểm của đoạn AB, ta có :
di = a(xi+1)+b(yi+1/2)+c
Việc so sánh, hay kiểm tra M sẽ được thay bằng việc xét giá trò d. Nếu d>0
điểm B được chọn, nếu d<0 điểm A được chọn. Trong trường hợp d=0 chúng ta có
thể chọn điểm bất kỳ A hay B.
- Nếu B được chọn thì M sẽ tăng theo x một đơn vò
Khi đó :
di+1 = F(xi+2,yi+1/2)
⇒ di+1 = di+a = di+dy
- Nếu A được chọn thì M tăng theo 2 hướng x và y cùng một đơn vò.
Khi đó :
di+1 = F(xi+2,yi+3/2)
Bắt đầu
⇒ di+1 = di+a+b = di+dy-dx
Để tính được giá trò d 1, là giá trò đầu tiên cho quá trình tính toán, thay vào công
x = x1
thức trên ta có :
F(x1 + 1 , y1 + 1/2) = a(xy 1=+y11) + b(yi + 1/2) + c
= F(x1,y1) + a + b/2 dx = x2 – x1

y2 n
–gy1thẳng ⇒ F(x1,y1) = 0
Với (xi,yi) là điểm đầu thuộdyc =đườ
dy – dx/2
⇒ d1 = a + b/2 = dyd–= dx/2
Putpixel (x,y)

d <= 0
x = x+1

d = d + dy - dx

Yes
d = d + dy

Yes

No

x < x2
No
Kết thúc

y=y+1


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý


Hình : Lưu đồ giải thuật trung điểm sinh đường thẳng

2/ GIẢI THUẬT SINH ĐƯỜNG TRÒN

a/ Nguyên lý chung :
Phương trình đường tròn đi qua tâm (xc,yc) được biểu diễn dưới dạng tổng quát
(x - xc)2 + (y – yc)2 = R2
với R là bán kính của đường tròn.
Việc sinh ra đường tròn có thể đơn giản tạo thành khi cho biến x chạy từ x c →
xc + R hay với đường tròn tâm trùng với gốc tọa độ thì tham biến x chạy từ 0 → R.
Vì đường tròn có hình dạng cong nên mật độ điểm được tạo ra dàn trải không
đều trên màn hình Raster thông qua các giá trò tọa độ được tính theo công thức :
x = xc + rcosθ
y = yc + rsinθ
Thông thường để rút gọn giải thuật người ta chỉ tính với góc θ bằng 450, mà từ
đó lấy đối xứng các cung ¼ khác qua gốc trục tọa độ, trục tung hoặc hoành.
Giải thuật trên cực kỳ phức tạp vì tồn tại quá nhiều các phép tính nhân và căn
hay sin, cos… điều đó là nguyên nhân khiến giải thuật không được sử dụng trong các
chương trình đồ họa. Các giải thuật thực tế trong các chương trình đồ họa thường
thông qua việc nguyên hóa các tọa độ dựa vào độ phân giải của màn hình.
b/ Giải thuật trung điểm vẽ đường tròn :
Như các tính năng đã phân tích trong giải thuật Midpoint cho đường thẳng.
Việc phát triển giải thuật sinh đường tròn cũng thu được các ưu điểm tương tự. Quá
trình phát triển giải thuật được xây dựng như sau :


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý


Lấy ¼
P
đường
tròn
A
M
làm ví dụ. Khi
đó x chạy từ 0
B
→ R/√2 và giả
sử điểm trên
đường tròn là
P có tọa độ
(xi,yi).
Mục
đích của giải
thuật là tìm ra
điểm kế tiếp
(xi+1,yi+1) và 2
sự lựa chọn là
A và B.
Theo
như
phương
trình
đường
tròn dưới dạng
không tường minh :
F(x,y) = x2 + y2 –R2
Giá trò dương cho những điểm ngoài đường tròn và giá trò âm cho những điểm

nằm trong đường tròn. Điểm giữa M của A và B sẽ quyết đònh việc lựa chọn. Nếu
M<0 điểm A sẽ là điểm kế tiếp và ngược lại nếu M>0 thì B sẽ là điểm cần tìm.
Giá trò d của trung điểm sẽ được tính theo công thức :
di = F(xi + 1,yi – ½)
= (xi + 1)2 + (yi – ½)2 – R2
Như vậy nếu di<0 thì điểm kế tiếp là A sẽ dòch 1 đơn vò theo x và giá trò d i+1
được tính theo công thức :
di+1 = F(xi + 2,yi – ½)
= (xi + 2)2 + (yi – ½)2 – R2
⇒ di+1 = di + (2xi + 3) ⇒ ∆a = 2xi + 3
Trường hợp di>0 thì điểm kế tiếp là B sẽ tăng giá trò theo x và giảm theo y với
cùng 1 đơn vò.
di+1 = F(xi + 2,yi – 3/2)
= (xi + 2)2 + (yi – 3/2)2 – R2
⇒ di+1 = di + (2xi –2yi + 5) ⇒ ∆b = 2xi –2yi + 5
Giá trò d1 tại điểm đầu (x1,y1) có tọa độ tương ứng là (0,R) và trung điểm tiếp
theo được suy ra là (1,R-1/2). Theo công thức
⇒ di = F(1,R-1/2)
= 1 + (R2 – R + ¼) – R2


Luận văn tốt nghiệp

Điều khiển máy vẽ bằng vi xử lý

= 5/4 - R
Bắt đầu
x=0
y=R
d = 5/4 - R


Putpixel (x,y)

d<0
x = x+1

d = d + 2(x-y) + 5

Yes
d = d + 2x + 3

Yes

No

xNo
Kết thúc

Hình: Lưu đồ giải thuật trung điểm sinh đường tròn

y=y-1


×