Professional Documents
Culture Documents
Câu 1:
a) Trình bày các phép biến đổi hình học hai chiều. Xây dựng các phép biến
đổi đó.
b) Giải thích tại sao chỉ chọn cung 1/8 đường tròn để vẽ rồi lấy đối xứng mà
không mở rộng cho cung 1/16 hay 1/32.
c) Giải thích tại sao có thể thay công thức P 0=5/4-R bằng công thức P0=1-R khi
cài đặt trong thuật toán MidPoint vẽ đường tròn .
Bài làm:
a. Các phép biến đổi hình học hai chiều:
- Bản chất của phép biến đổi hình học là thay đổi các mô tả về tọa độ của
đổi tượng, từ đó làm đối tượng thay đổi về hướng, kích thước, hình dạng
- Có hai quan điểm về phép biến đổi: biến đổi đối tượng và biến đổi hệ tọa
độ
- Phép biến đổi hình học là các phép ánh xạ tọa độ điểm hay vecto thành
tọa độ điểm hay vecto khác
- Các phép biến đổi hình học cơ sở: phép biến đổi affine là phép biến đổi
với f(x,y) và g(x,y) là các hàm tuyến tính. Phép biến đổi này có dạng:
x' =ax+ cy +e
{ y ' =bx+ dy +f
,a,b,c,d,e,f ∈ R, ad-bc≠ 0
- Phép tịnh tiến:
+ Phép tịnh tiến dùng để dịch chuyển đối tượng từ vị trí này sang vị trí
khác
+ Nếu gọi trx và try 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 Q(x’,y’) sau khi tịnh tiến điểm P(x,y) là:
Minh họa:
#include <iostream>
#include <graphics.h>
using namespace std;
int main()
{
initwindow(500,500);
line(50,100,100,50);
int tx,ty;
cout<<"Nhap vecto do doi: ";
cin>>tx>>ty;
line(50+tx,100+ty,100+tx,50+ty);
getch();
return 0;
}
Ta có đoạn thẳng ban đầu có tọa độ điểm đầu và điểm cuối là: (50,100),
(100,50)
Sau khi tịnh tiến với vecto độ dài là (tx,ty) ta có đoạn thẳng:
- Phép biến đổi tỷ lệ:
+ Phép biến đổi tỷ lệ làm thay đổi kích thước đối tượng. Để co hay dã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à sx và
sy, ta nhân sx và sy lần lượt cho các tọa độ của P
+ Khi các giá trị sx và sy nhỏ hơn 1, phép biến đổi sẽ thu nhỏ đối tượng,
nếu lớn hơn 1 sẽ phóng to đối tượng. Khi sx và sy bằng nhau, ta gọi đó là
phép đồng dạng.
+ Tâm tỉ lệ không bị thay đổi qua phép biến đổi tỉ lệ
+ Khi thu nhỏ đối tượng, đối tượng sẽ được dời về gần gốc tọa độ hơn,
ngược lại khi phóng to đối tượng thì đối tượng sẽ dời xa gốc tọa độ hơn
+ Biểu diễn ma trận:
Minh họa:
#include <iostream>
#include <graphics.h>
using namespace std;
int main()
{
float sx,sy;
cout<<"Nhap he so ty le: ";
cin>>sx>>sy;
initwindow(500,500);
line(50,100,100,50);
line(100,50,200,60);
line(200,60,50,100);
line(50*sx,100*sy,100*sx,50*sy);
line(100*sx,50*sy,200*sx,60*sy);
line(200*sx,60*sy,50*sx,100*sy);
getch();
return 0;
}
Với hệ số tỷ lệ là (3,4) ta được hình
- Phép quay:
+ Phép quay làm thay đổi hướng của đối tượng
+ Phép quay đòi hỏi phải có tâm quay, góc quay. Góc quay dương
thường ngược chiều kim đồng hồ. Ta có công thức biến đổi của phép
quay điểm P(x,y) quang gốc tọa độ 1 góc α