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

Vẽ 1 ellipse, sau đó vẽ thêm 3 ellipse khác có cùng tâm với ellipse đã cho, có độ dãn ở trục OX là K và OY là 1. Sau đó vẽ 1 elip nghiêng 1 góc G độ có các trục không song song với các trục tọa độ

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 (322.06 KB, 27 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
--------

BÁO CÁO BÀI TẬP LỚN MÔN HỌC
ĐỒ HỌA MÁY TÍNH
ĐỀ TÀI:“Vẽ 1 ellipse, sau đó vẽ thêm 3 ellipse khác có cùng tâm với ellipse đã
cho, có độ dãn ở trục OX là K và OY là 1. Sau đó vẽ 1 elip nghiêng 1 góc G độ có các
trục khơng song song với các trục tọa độ”.
NHĨM THỰC HIỆN: Nhóm 23 – LỚP KTPM3 – K6




Nguyễn Vũ Túc - 0641360220
Nguyễn Thu Phương - 0641360241
Trần Đức Giang - 0641360174

GIÁO VIÊN HƯỚNG DẪN: Nguyễn Thị Cẩm Ngoan

Hà Nội,ngày 20/ 2/2013


MỤC LỤC

LỜI NÓI ĐẦU
Đồ họa là một trong những lĩnh vực phát triển rất nhanh của ngành công nghệ
thông tin. Nó được ứng dụng rộng rãi trong nhiều lĩnh vực khoa học và công nghệ.
Chẳng hạn như trong y học, kiến trúc, giải trí… Đồ họa máy tính đã giúp chúng ta thay
đổi cách cảm nhận và sử dụng máy tính, nó đã trở thành những công cụ trực quan quan
trọng không thể thiếu trong đời sống hằng ngày. Vì vậy, môn đồ họa đã trở thành một


trong những môn học chính trong các chuyên nghành Công nghệ thông tin ở các
trường đại học.
Trong bài tập lớn bộ môn đồ họa máy tính nhóm em được giao đề tài: “Vẽ 1
ellipse, sau đó vẽ thêm 3 ellipse khác có cùng tâm với ellipse đã cho, có độ dãn ở
trục OX là K và OY là 1. Sau đó vẽ 1 elip nghiêng 1 góc G độ có các trục khơng
song song với các trục tọa độ”. Được sự hướng dẫn của cô giáo bộ môn cũng như
qua các cổng thông tin Internet, tài liệu và sự tìm tòi trên các cuốn sách tài liệu liên
quan tới đề tài nhóm em đã hoàn thành bài tập lớn được giao. Trong quá trình hoàn
thành nhóm đã gặp được một số khó khăn cũng như thuận lợi và còn nhiều hạn chế.
Nhóm em rất mong được sự đóng góp, bổ sung ý kiến để bài tập lớn của nhóm em có
thể hoàn thành tốt các đề tài tiếp theo cũng như đề tài của nhóm sau này.

2


Hà Nội, Ngày 14 tháng 2 năm 2013

CHƯƠNG I. KHẢO SÁT
1. Mục đích nghiên cứu
1.1 Về kỹ năng
Xác định được độ dài trục lớn, trục nhỏ, tiêu cự, tiêu điểm của elip.
Xác định được giao điểm vủa Elip với các trục tọa độ.
Sử dụng tốt các thuật toán, cách vẽ hình elip và các phép biến đổi trong đồ họa
1.2 Về tư duy
Thấy được mối liên hệ giữa Elip với đường trịn.
Hiểu được tính chất hình học và giải một số bài toán cơ bản về Elip.
2. Đối tượng nghiên cứu
Các phép biến hình như tịnh tiến, biến đổi tỉ lệ, phép quay, phép tịnh tiến và ứng
dụng của nó trong hình học.
Cách vẽ hình elip trong tọa đợ khơng gian


3


3. Khảo sát
3.1 Ứng dụng của hình Elip trong thực tế
- Dùng trong toán học, công nghệ thông tin : vẽ hình Elip, đồ họa…
- Sản xuất các vật dụng trong cuộc sống : chậu tắm, mắt kính…
3.2 Dự tính cần làm trong đề tài
- Vẽ hình elip
- phép tỉ lệ
- phép tịnh tiên
- phép quay

CHƯƠNG II. TỔNG QUAN VỀ ĐỜ HỌA MÁY TÍNH
1.

Khái niệm kỹ tḥt đờ họa máy tính (COMPUTER GRAGHICS)

Kỹ thuật đồ họa máy tính là phương pháp và công nghệ dùng trong việc chuyển
đổi qua lại giữa dữ liệu và hình ảnh trên màn hình bằng máy tính [ISO]. Kỹ thuật đồ
họa hay đồ họa máy tính còn được hiểu dưới dạng phương pháp và kỹ thuật tạo hình
ảnh từ các mô hình toán học mô tả các đối tượng hay dữ liệu lấy được từ các đối tượng
có thật trong thực tế.
Thuật ngữ kỹ thuật đồ họa máy tính được đề xuất bởi một nhà khoa học người
Mỹ tên là William Fetter vào năm 1960. Khi đó ông còn đang nghiên cứu xây dựng
mô hình b̀ng lái máy bay cho hãng Boeing của Mỹ. Ơng đã dựa trên các hình ảnh ba
chiều của mô hình của người phi công trong buồng lái của máy bay để xây dựng lên
một mô hình tối ưu cho buồng lái máy bay Boeing.


4


Lịch sử đồ họa trong những năm 1960 còn được đánh dấu bởi dự án Sketchpad
tại MIT với Ivan Shutherland tại hội nghị Fall Joint Computer cùng với sự kiện lần đầu
tiên tạo mới, hiển thị và thay đổi được dữ liệu hình ảnh trực tiếp trên màn hình trong
thời gian thực.

Hình 1.1 Ivan Shutherland
Kỹ thuật đồ họa còn liên tục hoàn thiện vào những năm 1970 với sự xuất hiện
của các chuẩn về đồ họa làm tăng cường khả năng giao tiếp và tái sự dụng của các
phần mềm cũng như các thư viện đồ họa.
2.

Các kỹ thuật đồ họa

2.1

Kỹ thuật đồ họa điểm

Nguyên lỹ xây dựng các mô hình và hình ảnh trong kỹ thuật đồ họa điểm gồm :
các mô hình, hình ảnh của các đối tượng được hiển thị thông qua từng pixel.
Có hai phương pháp để tạo ra các pixel này:
- Phương pháp thứ nhất là dùng phần mềm để vẽ trực tiếp từng pixel một dựa
trên các lỹ thuyết mô phỏng.

5


- Phương pháp thứ hai là số hóa hình ảnh thực của đối tượng. Sau đó chúng ta có

thể sửa đổi hoặc xử lý mảng các pixel thu được theo những phương pháp khác nhau để
thu được hình ảnh đặc trưng của đối tượng..
2.2 Kỹ thuật đồ họa vector
Nguyên lý xây dựng các mô hình và hình ảnh trong kỹ thuật đồ họa vector như
sau : trước hết người ta xây dựng mô hình hình học cho mô hình hoặc hình ảnh của đối
tượng, xác định các thuộc tính của mô hình hình học này, sau đó dựa trên mô hình
hình học này sẽ thực hiện quá trình tô trát để hiển thị từng điểm của mô hình, hình ảnh
thực của đối tượng. Ở kỹ thuật đồ họa này chúng ta chỉ lưu trữ mô tả của toán học của
các thành phần trong mô hình hình học cũng với các thuộc tính tương ứng của nó mà
không lưu trữ lại toàn bộ tất cả các pixel của hình ảnh tô trát được.
3.

Ứng dụng của đồ họa máy tính

Ngày nay, đồ họa máy tính được xử dụng trong nhiều lĩnh vực khác nhau như:
công nghiệp, thương mại, quản lý giáo dục, giải trí…như:
- Tạo giao diện như các chương trình ứng dụng Windows, Excel…
- Tạo ra các biểu đồ dùng trong thương mại, khoa học và kỹ thuật.
- Tự động hóa văn phòng và chế bản điện tử.
- Thiết kế với sự trợ giúp của máy tính.

CHƯƠNG III. CÁC THUẬT TOÁN SỬ DỤNG TRONG ĐỀ
TÀI
1. Thuật tốn vẽ hình elip
Để đơn giản, ta chọn Ellipse có tâm ở gốc tọa độ. Phương trình của nó có dạng:
+ =1

6



Ta có thể viết lại:
Y2 = .x2 + b2 (*)

Hình 1.1 Hình ellipse
(*) Ý tưởng : Giống như thuật toán vẽ đường tròn. Chỉ có sự khác biệt ở đây là ta
phải vẽ 2 nhánh : Một nhánh từ trên xuống và một nhánh từ dưới lên và 2 nhánh này sẽ
gặp nhau tại điểm mà ở đó hệ số góc của tiếp tuyến với Ellipse = -1.
Phương trình tiếp tuyến với Ellipse tại điểm (x0,y0) € (E) :
X 0 . + y0 . = 1
Suy ra, hệ số góc của tiếp tuyến tại điểm đó là :

1.1. Thuật toán Bresenham
Ở đây, ta chỉ xét nhánh vẽ từ trên xuống.
Giả sử điểm ( xi , yi ) đã được vẽ. Điểm tiếp theo cần chọn sẽ là ( x i + 1,yi ) hoặc
(xi+1,yi – 1)

7


Thay (xi + 1) vào (*) :y2 = .(xi + 1)2 + b2
Đặt
d1 = yi2 – y2 = yi2 + . (xi + 1)2 – b2
d2 = y2 – (yi - 1)2 = .(xi + 1)2 + b2 – (yi -1)2
→ pi = d1 – d2 = 2.[.(xi + 1)2 – b2] + 2.(yi2 + yi) – 1
Pi+1 = 2.[.(xi+1 + 1)2 – b2] + 2.(yi+12 + yi+1) – 1
Suy ra:
Pi+1 – pi = 2..[(xi+1 + 1)2 – (xi + 1)2] + 2.(yi+12 – yi2 + yi+1 - yi)
*Nhận xét:
- Pi < 0: Chọn yi+1 = yi
(**) → pi+1 = pi + 2..(2x + 3)

- pi ≥ 0 : Chọn yi+1 = yi – 1
(**) → pi+1 = pi + 2..(2x + 3) – 4yi
Với điểm đầu tiên (0,b), ta có:
P1 = 2. - 2b + 1
Từ đó, ta có thủ tục vẽ Ellipse như sau :
Procedure Ellipse(xc,yc,a,b:Integer;Color:Byte);
Var

p,a2,b2:real;

x,y:integer;
(*-------------------*)
8

(**)


Procedure VeDiem;
Begin
PutPixel(xc+x,yc+y,Color);
PutPixel(xc-x,yc+y,Color);
PutPixel(xc-x,yc-y,Color);
PutPixel(xc+x,yc-y,Color);
End;
(*-------------------*)
Begin
a2:=a*a;
b2:=b*b;
{Nhanh 1}
x:=0; y:=b;

p:=2*b2/a2 - 2*b + 1;
While (b2/a2) * (x/y) < 1 do
Begin
VeDiem;
If p<0 then p:=p + 2*(b2/a2)*(2*x+3)
else Begin
p:=p - 4*y + 2*(b2/a2)*(2*x+3);
9


y:=y-1;
End;
x:=x+1;
End;
{Nhánh 2}
y:=0; x:=a;
p:=2*(a2/b2) - 2*a + 1;
While (a2/b2) * (y/x) <=1 do
Begin
VeDiem;
If p<0 then p:=p + 2*(a2/b2)*(2*y+3)
else Begin
p:=p - 4*x + 2*(a2/b2)*(2*y+3);
x:=x-1;
End;
y:=y+1;
End;
End;
1. 2. Thuật toán Midpoint
Gợi ý:

10


Phương trình Ellipse:

+ =1

Nhánh 1:
P1 = b2 – a2b + .a2
If pi < 0 Then pi+1 = pi + b2 + 2b2xi+1
Else pi+1 = pi + b2 + 2b2xi+1 – 2a2yi+1
Nhánh 2:
P1 = b2(xi + )2 + a2(yi – 1)2 – a2b2
If pi > 0 Then pi+1 = pi + a2 – 2a2yi+1
Else pi+1 = pi + a2 + 2b2xi+1 – 2a2yi+1
Procedure MidEllipse(xc,yc,a,b:Integer;Color:Byte);
Var

p,a2,b2:real;

x,y:Integer;
(*-------------------*)
Procedure VeDiem;
Begin
PutPixel(xc+x,yc+y,Color);
PutPixel(xc-x,yc+y,Color);
PutPixel(xc-x,yc-y,Color);
PutPixel(xc+x,yc-y,Color);
End;
11



(*-------------------*)
Begin
a2:=a*a;
b2:=b*b;
{Nhanh 1}
x:=0; y:=b;
Vediem;
p:=b2 - a2*b + 0.25*a2;
While (b2/a2)*(x/y)<1 do
Begin
x:=x+1;
If p<0 Then p:=p + b2 + 2*b2*x
else begin
y:=y-1;
p:=p + b2 + 2*b2*x - 2*a2*y;
end;
Vediem;
End;
{Nhanh 2}
p:=b2*(x+0.5)*(x+0.5) + a2*(y-1)*(y-1)- a2*b2 ;
12


While y>0 do
Begin
y:=y-1;
If p>0 Then p:=p + a2 - 2*a2*y
else begin

x:=x+1;
p:=p + a2 + 2*b2*x - 2*a2*y;
end;
Vediem;
End;
End;
2. Thuật toán vẽ đồ thị hàm số
2.1. Bài toán đặt ra: Vẽ đồ thị của hàm số y = f(x) trên đoạn [Min,Max].
*Ý tưởng: Cho x chạy từ đầu đến cuối để lấy các tọa độ (x,f(x)) sau đó làm tròn
thành số nguyên rồi nối các điểm đó lại với nhau.
2. 2. Giải thuật
• Bước 1: Xác định đoạn cần vẽ [Min,Max].
• Bước 2: -

Đặt gốc tọa độ lên màn hình (x0,y0).

- Chia tỷ lệ vẽ trên màn hình theo hệ số k
- Chòn bước tăng dx của mỗi điểm trên đoạn cần vẽ.
• Bước 3: Chọn điểm đầu cần vẽ x = Min, tính f(x)

13


Đổi tọa độ màn hình và làm tròn:
x1:=x0 + Round(x.k);
y1:=y0 – Round(y.k);
Di chuyển đến (x1,y1): MOVETO(x1,y1);
• Bước 4 :
Tăng x lên với số ra dx : x := x + dx ;
Đổi qua tọa độ màn hình và làm tròn :

x2 := x0 + Round(x.k) ;
y2 :=y0 – Round(y.k) ;
Vẽ đến (x2,y2) :LINETO(x2,y2) ;
• Bước 5 : Lặp lại bước 4 cho đến khi x > Max thì dừng.

CHƯƠNG IV. CÁC PHÉP BIẾN ĐỔI
1.

Phép tịnh tiến (Translation)

Có hai quan điểm về phép biến đổi hình học, đó là :
- Biến đổi đối tượng : thay đổi tọa độ của các điểm mô tả đối tượng theo một quy
tắc nào đó.
- Biến đổi hệ tọa độ : 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.
Các phép biến đổi hình học cơ sở là : tịnh tiến, quay, biến đổi tỉ lệ.
Phép biến đổi Affine hai chiều ( gọi tắt là phép biến đổi) là một ánh xạ T biến đổi
điểm P(Px,Py) thành điểm Q(Qx,Qy) theo hệ phương trình sau :

14


Qx = a*Px + c*Py + trx
Qy = b*Px + d*Py + try

Hay
(Qx,Qy) = (Px,Py). (ad – bc) + (trx,try)
→ Q = P.M + tr
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 độ điểm

mới Q(x’,y’) sau khi tịnh tiến điểm P(x,y) sẽ là:
x’= x + trx
y’= y + try
(trx,try) được gọi là vector tịnh tiến hay vector độ dời
Hay

Q= P.M + tr

M= ad – bc
tr=(trx,try)

15


Q(x’,y’)
try
P(x,y)

trx

Hình 3.1 Phép biến đổi tịnh tiến điểm P thành điểm Q
2.

Phép biến đổi tỷ lệ

Phép biến đổi tỷ lệ làm thay đổi kích thước của đố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 x và Sy ta nhân Sx và Sy
lần lượt cho các tọa độ của P
x’ = x.Sx
y’ = y.Sy

- Khi các giá trị Sx, Sy nhỏ hơn 1, phép biến đổi sẽ thu nhỏ đối tượng. Ngược lại,
khi các giá trị này lớn hơn 1, phép biến đổi sẽ phóng lớn đối tượng.
- Khi Sx = Sy, người ta gọi đó là phép đồng dạng. Đây là phép biến đổi bảo toàn
tính cân xứng của đối tượng. Ta gọi là phép phóng đại nếu |S|>1 và là phép thu nhỏ
nếu |S|<1.
- Nếu hai hệ số tỷ lệ khác nhau thì ta gọi là phép không đồng dạng. Trong trường
hợp hoặc Sx hoặc Sy có giá trị 1, ta gọi đó là phép căng.
3.

Phép quay

Phép quay làm thay đổi hướng của đố tượng. Một phép quay đòi hỏi phải có tâm
quay, góc quay. Góc quay dương thường được quy ước là chiều ngược kim đồng hồ.

16


• Phép quay quanh gốc tọa độ
Ta có công thức biến đổi của phép quay điểm P(x,y) quanh gốc tọa độ góc Ө
(hình 3.2)
x’ = x.cos Ө - y.sin Ө
y’ = x.sin Ө - y.cos Ө
Hay Q = P*M
Với M= (cos Ө.cos Ө - sin Ө.(-sin Ө))

Q(x’,y’)

P(x,y)

0


Hình 3.2 Phép quay quanh gớc tọa đợ
• Phép quay quanh mợt điểm bất kỳ
Xét điểm P(P.x,P.y) quay quanh điểm V(V.x,V.y) một góc Ө

đến điểm

Q(Q.x,Q.y). Ta có thể xem phép quay quanh tâm V được kết hợp từ các phép biến đổi
cơ bản sau:
-

Phép tịnh tiến (-V.x,-V.y) để dịch chuyển tâm quay về gốc tọa độ

-

Quay quang gốc tọa độ 0

-

Phép tịnh tiến (+V.x,+V.y) để đưa tâm quay về vị trí ban đầu

Ta cần xác định tọa độ của điểm Q
17


- Từ phép tịnh tiến ( -V.x,-V.y) biến đổi điểm P thành P’ ta được:
P’ = P + V
Hay
P’.x = P.x – V.x
P’.y = P.y – V.y

- Phép quay quanh gốc tọa độ biến đổi điểm P’ thành Q’
Q’ = P’.M
Q’.x = P’.x*cosӨ - P’.y*sinӨ
Q’.y = P’.x*sinӨ + P’.y*cosӨ
- Phép tịnh tiến ( +V.x, +V.y) biến đổi điểm Q’ thành Q ta được
Q = Q’ + V
Hay
Q.x = Q’.x + V.x
Q.y = Q’.y + V.y
→ Q.x = ( P.x – V.x)*cosӨ - (P.y – V.y)*sinӨ + V.x
Q.y = (P.x – V.x)*sinӨ + (P.y – V.y)*cosӨ + V.y
→ Q.x = P.x*cosӨ - P.y*sinӨ + V.x*(1- cosӨ) + V.y*sinӨ
Q.y = P.x*sinӨ - P.y*cosӨ - V.x*sinӨ + V.y* (1-cosӨ)
Vậy Q = P.M + tr
Với
18


M = ( cosӨ.cosӨ - sinӨ.(-sinӨ))
tr = (V.x*(1-cosӨ) + V.y*sinӨ, -V.x*sinӨ + V.y*(1-cosӨ))
4.

Phép đối xứng

Phép đối xứng trục có thể xem là phép quay quanh trục đối xứng một góc 180 0.
Phương trình ban đầu:
Q.x = a*P.x + c*P.y +trx
Q.y = b*P.x + d.P.y + try
Hay
(Q.x, Q.y) = (P.x, P.y)

Trục đối xứng là trục hoành:

[ ]

M=

−1 0
0 1

Ta có
Q.x = P.x
Q.y = -P.y
Tương tự trục đối xứng là trục tung:
Ta có
Q.x = -P.x
Q.y = P.y

19


[ ]

M=

−1 0
0 1

CHƯƠNG V. TÀI LIỆU THAM KHẢO
1.


/>
2.

Kỹ thuật đồ họa – NXB Khoa học và kỹ thuật Hà Nội

CHƯƠNG VI. CODE BÀI TẬP LỚN
#include<graphics.h>
#include<math.h>
#include<dos.h>
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
float xw1,xw2,yw1,yw2,tlx,tly;
int xv1,xv2,yv1,yv2;

void cuaSo(float x1, float y1, float x2,float y2)
{
xw1=x1;yw1=y1;xw2=x2;yw2=y2;

20


}

void khungNhin(int x1,int y1,int x2, int y2)
{
xv1=x1;yv1=y1;xv2=x2;yv2=y2;
tlx=(xv2-xv1)/(xw2-xw1);
tly=(yv2-yv1)/(yw2-yw1);

}

void chuyenDen(float x, float y)
{
int xm = (int) (tlx*(x-xw1)+xv1);
int ym = (int) (tly*(yw2-y)+yv1);
moveto(xm,ym);
}

void veDen(float x, float y)
{
int xm = (int) (tlx*(x-xw1)+xv1);
int ym = (int) (tly*(yw2-y)+yv1);
21


lineto(xm,ym);
}

void veTrucToaDo()
{
chuyenDen(xw1,0);
veDen(xw2,0);
chuyenDen(0,yw1);
veDen(0,yw2);
float y = yw1 + 1;
while (y < yw2)
{
chuyenDen(-0.01,y);
veDen(0.01,y);

y++;
}
float x = xw1 + 1;
while (x < xw2)
{
chuyenDen(x,-0.01);
22


veDen(x,0.01);
x++;
}
}
void elip(int x1,int y1, float a, float b, int val)
{
x1 = (int) (tlx*(x1-xw1)+xv1);
y1 = (int) (tly*(yw2-y1)+yv1);
int x,y;float p=b*b+(b-0.5)*(b-0.5)*a*a-a*a*b*b;
x=0;y=b;
while((b*b*x/(a*a*y))<1)
{
x++;
if(p>0) { y--;p=p+b*b*(1+2*x)-a*a*2*y;}
else p=p+b*b*(1+2*x);
putpixel(x+x1,y+y1,val);
putpixel(-x+x1,y+y1,val);
putpixel(x+x1,-y+y1,val);
putpixel(-x+x1,-y+y1,val);
}
23



p=b*b*(x+0.5)*(x+0.5)+a*a*(y-1)*(y-1)-a*a*b*b;
while(y>0)
{
y--;
if(p>0) p= p+a*a*(1-2*y) ;
else { x++ ; p=p+a*a*(1-2*y)+2*b*b*x; };
putpixel(x+x1,y+y1,val);
putpixel(-x+x1,y+y1,val);
putpixel(x+x1,-y+y1,val);
putpixel(-x+x1,-y+y1,val);
}
}
void quay(int x1,int y1, float a, float b, int val)
{
float x11,y11,goc;
cout<<"nhap goc quay:";cin>>goc;
x11=x1*cos(goc)-y1*sin(goc);
y11=x1*sin(goc)+y1*cos(goc);
elip(x11,y11,a,b,3);
24


}

int main()
{
int md=0, dr=0;
initgraph(&md,&dr,"C:\\BC\\BGI");

//cleardevice();
//setbkcolor(0);
cuaSo(-10,-10,10,10);
khungNhin(60,10,560,510);
setcolor(14);
veTrucToaDo();
int x1,y1,k; float a,b;
cout<<"Nhap toa do tam elip A(x1,y1): ";cin>>x1;cin>>y1;
cout<<"Nhap ban kinh a= ";cin>>a;
cout<<"Nhap ban kinh b= ";cin>>b;
cout<<"nhap do dan truc ox= ";cin>>k ;
//cleardevice();
setbkcolor(0);
elip(x1,y1,a,b,11);
25


×