Một bạn đọc gửit in nhắn cho chúng tôi hỏi làm sao để vẽ 5 hình tròn biểu tượng của Olympic bằng MSWLogo, thật ra câu hỏi này không khó tuy nhiên nó cũng không hề đơn giản nhé.
Nội dung chính
Cách 1:
Ở bài này chúng tôi sẽ xác định tọa độ tâm của 5 hình tròn, các bạn có thể vẽ nó ra trên giấy rồi sau đó tính toán thử, ở trong bài này tôi đặt đường tròn A và C trên đỉnh của tam giác đều cạnh 200 và B và D thì có tâm ở đỉnh lùi lại 1 ít 200-50. Như vậy để vẽ đường tròn thì chỉ cần dùng Circle độ dài bán kính là xong. Để việc xác định tọa độ trở nên đơn giản tôi viết một hàm tên là Goc với giá trị truyền vào là các đỉnh A, B, C, D, E khi tới đỉnh nào thì màu sắc của pen sẽ đổi thành màu trùng với màu của hình tròn tại điểm đó. Việc xác định tọa độ điểm thì chỉ việc nhấc pen vẽ 2 tam giác đều với độ dài 200 và Show Pos tại các đỉnh rồi sau đó copy trở lại vào hàm Goc, các bạn có thể làm tròn số cho chương trình dễ nhìn.
Sau khi vẽ được 5 vòng tròn tôi quay trở lại điểm A và vẽ một đoạn cung tròn đè lên chỗ màu vàng bằng lệnh ARC độ dài cung tròn độ dài bán kính ở đây bán kính là 90 cho hình tròn và tất nhiên cung tròn cũng thế, xác định cung tròn bằng cách quay rùa và ước lượng độ dài. Sau khi thực hiện xong thì các bạn sẽ có cảm giác là vòng xanh và vòng vàng nó lồng vào nhau. Làm tương tự cho các hình tròn còn lại. Lưu ý là khi dùng SETPOS thì hướng nhìn của rùa là không đổi.
Code tham khảo
To Goc :n
PU
If :n=”A [
SETPENCOLOR [0 0 255] ;Blue
Setpos (list -100 0) ]
If :n=”B [
SETPENCOLOR [255 255 0] ;Yellow
Setpos (list 0 -123.20508)]
If :n=”C [
SETPENCOLOR [0 0 0] ;Black
Setpos (list 99.999999 0)] ;Làm tròn 100 cũng được
If :n=”D [
SETPENCOLOR [0 255 0] ;Green
Setpos (list 199.999999 -123.20508)]
If :n=”E [
SETPENCOLOR [255 0 0] ;Red
Setpos (list 299.999999 0)] ; Làm tròn 300 nhé
PD
END ;Hàm Góc
To Olympic
CS
SETPENSIZE 8 ; Với MSWLogo các bạn viết là SETPENSIZE [8 8]
Goc “A Circle 90
Goc “B Circle 90
Goc “C Circle 90
Goc “D Circle 90
Goc “E Circle 90
Goc “A LT 90 ARC 45 90
Goc “B LT 90 ARC 15 90
Goc “C RT 90 ARC 45 90
Goc “D LT 90 ARC 15 90
End
Hãy cùng xem quá trình vẽ của MSWLogo nhé
Cách 2
Bạn xác định tọa độ tâm của 5 hình tròn bằng cách tính tương đối rồi sử dụng PU, PD, Setxy và Circle để vẽ hình