Draw Ellipse?

Lê Huy Hoàng
(hoanglh)

Điều hành viên
Mọi người có biết cách nào vẽ 1 hình Ellipse xoay 45 độ trong Pascal không?
Phương trình tổng quát của 1 Ellipse bất kì là gì nhỉ?
 
Chỉnh sửa lần cuối:
Phải vẽ từng pixel một :)

x = a * cos alpha
y = b * sin alpha

Sau đó dùng công thức quay trục tọa độ (lâu quá rồi không nhớ :) ) tra trong sách nào cũng có.

Bây giờ vẫn còn có người dùng pascal cơ à :)
 
A` anh Linh cho em hỏi có hàm API nào có chức năng tương tự như delay trong Passcal không, dùng để làm cho hình vẽ chuyển động chậm lại ý?
Mà bây giờ người ta hay dùng ngôn ngữ gì để lập trình đồ hoạ nhỉ?
 
Chỉnh sửa lần cuối:
Nếu nhớ ko nhầm thì trong pascal có hàm ellipse muh. Hình như cú pháp là:
ellipse(x,y,sa,ea,xr,yr) thì phải. Trong đó x,y là tọa độ tâm, sa là góc bắt đầu, ea là góc kết thúc (vẽ 1 quả ellipse đầy đủ thì 0,360), xr, yr là bán kính ở trục x và trục y tương đương.
 
Mà ý ông anh là delay API của cí rì mới được (Windows API, Linux kernel API, Java API hay cí rì???)
 
Hơ, mà rất xin lỗi 2 ông anh. Vừa nãy em đọc ko được kỹ, hóa ra ông anh muốn vẽ hình ellipse quay 45 độ chứ ko phải ellipse thường. Khè, em có cách nì, hơi chuối muh có lẽ là cũng khá hay.

- Vẽ 1 hình ellipse thường bằng hàm ellipse đã nêu ở bài trước với tâm là tâm của hình ellipse cuối cùng muốn đạt được.
- Vì hình ellipse chắc chắn anh sẽ vẽ với màu khác màu nền của màn hình (vì nếu ko thì có vẽ ra cũng chẳng ai nhìn được) ---> tìm tất cả các điểm trên màn hình có màu khác với màu nền
- Lưu tọa độ tất cả các điểm nì vào 1 mảng
- Với mỗi điểm trong mảng, xoay điểm nì 45 độ.
- Lưu giữ mỗi điểm mới nì vào 1 mảng khác.

---> có điểm rùi ---> phần còn lại dễ dàng rùi nhá.
 
Với mỗi điểm trong mảng, xoay điểm nì 45 độ.

Ơ...ơ...ơ, tui chỉ là dân ngoại đạo, nhưng mà thấy hơi vô lý.
 
Có rì đâu muh vô lý. Ví dụ thế nì:
. (O) .(A)
2 điểm như thế nì, trong đó O là tâm của hình ellipse, còn (A) là điểm cần xoay 90 độ (90 độ cho dễ ý muh) ---> kẻ 1 đường nối giữa O với A rùi xoay đường nì 90 độ về phía bên trái quanh tâm O ---> kết quả như sau:
.(A)
|
|
|
|
|
.(O)
Bỏ cí đường ở giữa O với A đi thì sẽ được điểm A mới.
 
Back
Bên trên