Tải bản đầy đủ (.pdf) (20 trang)

Bài giảng Đồ họa máy tính: Các phép biến đổi trong đồ họa hai chiều - TS. Đào Nam Anh - Trường Đại Học Quốc Tế Hồng Bàng

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 (278.15 KB, 20 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



<b>ĐỒ HỌA MÁY TÍNH </b>


<b>CÁC PHÉP BIẾN ĐỔI TRONG </b>


<b>ĐỒ HỌA HAI CHIỀU </b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



2


<b>NỘI DUNG</b>

<b> </b>



I. CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ



II. KẾT HỢP CÁC PHÉP BIẾN ĐỔI


III. MỘT SỐ TÍNH CHẤT CỦA PHÉP BIẾN ĐỔI AFFINE
IV. MỘT SỐ PHÉP BIẾN ĐỔI KHÁC


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



<b>Tham khảo</b>

<b> </b>



1. Francis S. Hill. Computer Graphics. Macmillan Publishing Company,
NewYork, 1990, 754 tr.


2. James D.Foley, Andries Van Dam, Feiner, John Hughes. Introduction to
Computer Graphics. Addision Wesley, NewYork, 1995, 559 tr.


3. James D.Foley, Andries Van Dam, Feiner, John Hughes. Computer
Graphics - Principle and Practice. Addision Wesley, NewYork, 1996,
1175 tr.


4. Dương Anh Đức, Lê Đình Duy. Giáo trình Đồ họa máy tính. Khoa Cơng
nghệ thông tin, Trường Đại học Khoa học Tự nhiên (lưu hành nội bộ),
1996, 237 tr.



5. Hồng Kiếm, Dương Anh Đức, Lê Đình Duy, Vũ Hải Qn. Giáo trình
Cơ sở Đồ họa Máy Tính, NXB Giáo dục, 2000.


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



4


<b>CÁC PHÉP BIẾN ĐỔI TRONG ĐỒ HỌA HAI CHIỀU </b>


Một trong những ưu điểm quan trọng của đồ



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>




<b>CÁC PHÉP BIẾN ĐỔI TRONG ĐỒ HỌA HAI CHIỀU </b>


 Tất cả các thao tác này có thể được hỗ trợ một cách


dễ dàng nhờ vào các phép biến đổi hình học. Các
phép biến đổi hình học sẽ làm thay đổi mơ tả về tọa
độ của các đối tượng, từ đó làm cho đối tượng bị
thay đổi về hướng, kích thước và hình dạng.


 Các phép biến đổi hình học cơ sở bao gồm: tịnh


tiến (translation), quay (rotation) và biến đổi tỉ lệ
(scaling).


 Ngoài ra một số phép biến đổi khác cũng thường


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



6


<b>CÁC PHÉP BIẾN ĐỔI TRONG ĐỒ HỌA HAI CHIỀU </b>



 Có hai quan điểm về phép biến đổi hình học đó là:


biến đổi đối tượng (object transformation) và biến
đổi hệ tọa độ (coordinate transformation).


 Biến đổi đối tượng là thay đổi tọa độ của các


điểm mơ tả nó theo một quy tắc nào đó,


 Biến đổi hệ tọa độ là tạo ra một hệ tọa độ mới và


tất cả các điểm mô tả đối tượng sẽ được chuyển
về hệ tọa độ mới.


 Hai cách này có những mối liên hệ chặt chẽ với


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>


 Một phép biến đổi hai chiều sẽ biến đổi điểm P trong mặt



phẳng thành điểm có tọa độ mới Q theo một quy luật nào
đó. Về mặt bản chất, một phép biến đổi điểm là một ánh xạ
T được định nghĩa:


 Nói cách khác, T là hàm số T(x,y) theo hai biến x,y:


 Phép biến đổi <b>affine </b>là phép biến đổi với f(x,y) và g(x,y) là


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<b>Compu</b>


<b>ter G</b>


<b>rap</b>


<b>hic</b>


<b>s </b>


8
<b>P</b>
<b>P</b>
<b>T</b>
<i>x</i>


<i>y</i>

,



,

,





<i>x</i> <i>y</i>


<i>x</i>
<i>y</i>



<i>x</i>

<i>x t</i>

<i>y</i>

<i>y t</i>



<i>t</i>



<i>x</i>

<i>x</i>



<i>t</i>



<i>y</i>

<i>y</i>



<b>P</b>

<b>P</b>

<b>T</b>



<b>P</b>

<b>P T</b>



<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>


<b>Phép tịnh tiến </b>



</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>
<b>Phép tịnh tiến </b>



 Để tịnh tiến một điểm <b>P(x,y)</b> từ vị trí này sang vị trí


khác trong mặt phẳng, ta cộng thêm các giá trị mô
tả độ dời vào các tọa độ của <b>P</b>. Nếu gọi <b>tr<sub>x</sub></b> và <b>tr<sub>y</sub></b>


lần lượt là độ dời theo trục hoành và trục tung thì
tọa độ của điểm mới sẽ là:


 <b>(tr<sub>x</sub>,tr<sub>y</sub>)</b> còn được gọi là vector tịnh tiến hay vector


độ dời.


 Có thể dịch chuyển tồn bộ một đối tượng bằng


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



10


<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>
<b>Phép tịnh tiến </b>


 Để tịnh tiến một điểm <b>P(x,y)</b> từ vị trí này sang vị trí



khác trong mặt phẳng, ta cộng thêm các giá trị mô
tả độ dời vào các tọa độ của <b>P</b>. Nếu gọi <b>tr<sub>x</sub></b> và <b>tr<sub>y</sub></b>


lần lượt là độ dời theo trục hoành và trục tung thì
tọa độ của điểm mới sẽ là:


 <b>(tr<sub>x</sub>,tr<sub>y</sub>)</b> còn được gọi là vector tịnh tiến hay vector


độ dời.


 Có thể dịch chuyển tồn bộ một đối tượng bằng


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>
<b>Phép tịnh tiến </b>


Để tịnh tiến một

<b>đoạn thẳng</b>

, đơn giản chỉ



cần tịnh tiến

<b>hai điểm đầu và cuối</b>

của nó rồi


sau đó vẽ lại đoạn thẳng nối hai điểm mới.




Với

<b>đa giác</b>

, ta tịnh tiến

<b>các đỉnh</b>

của nó sau



đó vẽ lại đa giác với các đỉnh mới. Một cách


tương tự, để tịnh tiến các đối tượng như



</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



12


<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>
<b>Phép tịnh tiến </b>


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>




<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>
<b>Phép biến đổi tỉ lệ </b>


 Phép biến đổi tỉ lệ làm thay đổi kích thước đối tượng. Để co


hay giãn tọa độ của một điểm P(x,y) theo trục hoành và trục
tung lần lượt là s<sub>x</sub> và s<sub>y</sub>, ta nhân s<sub>x</sub> và s<sub>y</sub> lần lượt cho các tọa
độ của P.


s<sub>x</sub> và s<sub>y</sub> được gọi là các hệ số tỉ lệ.


 Khi các giá trị s<sub>x</sub> và s<sub>y</sub> nhỏ hơn 1, phép biến đổi sẽ thu nhỏ


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



14


<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>
<b>Phép biến đổi tỉ lệ </b>


 <b>Tâm tỉ lệ</b> là điểm không bị thay đổi qua phép biến



đổi tỉ lệ. Phép biến đổi tỉ lệ mơ tả như trên cịn gọi
là phép biến đổi tỉ lệ quanh gốc tọa độ vì có tâm tỉ
lệ là gốc tọa độ.


 Nhận xét rằng khi phép biến đổi tỉ lệ thu nhỏ đối


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>
<b>Phép quay </b>


 Phép quay làm thay đổi hướng của đối tượng. Một phép


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>




<b>s </b>



16


<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>
<b>Biểu diễn ma trận của phép biến đổi </b>


Trong nhiều ứng dụng đồ họa, người dùng



</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



<b>CÁC PHÉP BIẾN ĐỔI HÌNH HỌC CƠ SỞ </b>
<b>Biểu diễn ma trận của phép biến đổi </b>


 Ví dụ trong các ứng dụng thiết kế, chúng ta cần phải


thực hiện nhiều phép tịnh tiến, quay, tỉ lệ để có thể
khớp từng phần của đối tượng vào đúng vị trí của
chúng, hay sau khi thực hiện các phép biến đổi


nhưng không được ưng ý, người dùng muốn trở lại
hiện trạng trước khi biến đổi (undo), …



 Do đó cần phải có một cách nào đó để có thể xử lí


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<b>Compu</b>


<b>ter G</b>


<b>rap</b>


<b>hic</b>


<b>s </b>


18


<b>Phép tịnh tiến 2D </b>


<b>P</b>
<b>P</b>
<b>T</b>
<i>x</i>
<i>y</i>
,
, ,

<i>x</i> <i>y</i>
<i>x</i>
<i>y</i>


<i>x</i> <i>x t</i> <i>y</i> <i>y t</i>


<i>t</i>


<i>x</i> <i>x</i>



<i>t</i>


<i>y</i> <i>y</i>


<b>P</b> <b>P</b> <b>T</b>


<b>P</b> <b>P T</b>


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>



<b>s </b>



<b>Phép quay 2D </b>


<i>x</i>
<i>y</i>
<i>r</i>
<i>x</i>
<i>r</i>
<i>y</i>
<i>x</i>
<i>y</i>
,
<i>r</i> <i>r</i>


<i>x y</i>
,
<i>x y</i>
,
<i>x y</i>
cos sin
sin cos
cos sin
sin cos


<i>r</i> <i>r</i> <i>r</i>


<i>r</i> <i>r</i> <i>r</i>


<i>r</i> <i>r</i>


<i>x</i> <i>x</i> <i>x</i> <i>x</i> <i>y</i> <i>y</i>


<i>y</i> <i>y</i> <i>x</i> <i>x</i> <i>y</i> <i>y</i>


<b>P</b> <b>P</b> <b>R P P</b>


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<b>Compu</b>



<b>ter G</b>



<b>rap</b>



<b>hic</b>




<b>s </b>



20


<b>Phép biến đổi tỉ lệ 2D </b>


<i>x</i>


<i>S</i>


<i>y</i>


<i>S</i>


,
0
0


<i>x</i> <i>y</i>


<i>x</i>


<i>y</i>


<i>x</i> <i>x s</i> <i>y</i> <i>y s</i>
<i>s</i>


<i>x</i> <i>x</i>


<i>s</i>



<i>y</i> <i>y</i>


<b>P</b> <b>S P</b>


</div>

<!--links-->

×