Vì nhìn phần màu đỏ khá giống với cánh quạt nên tôi đặt tiêu đề như vậy, bài này thật ra không khó lắm tuy nhiên sau khi nhận code của các thầy cô trên fanpage chúng tôi thấy rằng phần lớn các thầy cô khi vẽ hình đều để lại đường màu đen của hình vuông trong khi đề bài không có. Vì vậy tôi code lại bài này và nhấn mạnh rằng :
Về phần diện tích tôi tính như sau: Nếu tôi kẻ một đường chéo màu xanh chia hình vuông làm 2 và phần vàng đậm kéo lên lấp vào chỗ vàng nhạt thì ta dễ dàng nhận thấy phần diện tích màu đỏ + vàng sẽ bằng diện tích hình vuông lớn trừ đi diện tích ¼ hình tròn ra phần màu cam trừ tiếp ½ diện tích hình vuông (màu xám)
Code đầy đủ:
To EYTH ; thiet lap thong so truoc khi ve PD CS SETFC [255 0 0] SETPENSIZE [2 2] SETPC [0 0 0] ;ve hinh Repeat 4[Repeat 4[Fd 100 Rt 90]Rt 90] Bk 100 Rt 90 Arc 90 100 Lt 90 Fd 200 Lt 90 Arc 90 100 Fd 100 Arc 90 200 ;to mau do PU SetXY -100 -100 SetHeading 90 Lt 37 Repeat 3 [ Fd 75 Fill] ;bo duong gach den to lai bang mau do SetXY -100 100 SetHeading 90 Rt 30 Fd 200 Make "k Distance [0 0] ; tinh khoang cach duong mau den SETPC [255 0 0] PD Repeat 2 [Home RT 90*Repcount Fd :k-1] ;tinh dien tich phan to mau do Make "VT 200*200 ; Dien tich hinh vuong to Make "TT (200*200*3.14)/4 ; Dien tich 1/4 hinh tron to Make "A :VT - :TT ;Phan ngoai giao nhau giua cung tron voi hinh vuong to Make "S :VT-:A-:VT/2 PU SetXY -150 -120 SetHeading 90 Label (List "Phan "dien "tich "mau "do "la :S) End
Để giải quyết việc bạn không biết được rùa hiện tại đang ở góc độ bao nhiêu độ thì bạn dùng SetHeading độ bắt nó quay về góc độ bạn muốn ở ví dụ trên SetHeading 90 tôi bắt nó quay về hướng 3 giờ, (hướng 12 giờ là 0 độ).
Cách giải khác
Một cách giải khác không sử dụng lệnh đo khoảng cách, code của thầy Long Nguyễn. Thay vì vẽ đường cung tròn màu đen thì ta vẽ màu đỏ và tô màu là xong. Code này sử dụng font chữ tiếng Việt có dấu, các bạn nhớ khai báo lại font cho phù hợp.
To aha
cs setpc 0 repeat 4[ repeat 4[ fd 100 rt 90] rt 90]
fd 100 rt 90 fd 100 rt 90
setpc 4 arc2 90 100 rt 180 arc2 -90 100 lt 90 arc2 -90 200
pu home setfc 4 rt 90 fd 50 fill
bk 50 rt 90 fd 50 fill
rt 90 fd 20 fill bk 40 fill
bk 30 rt 90 fd 60 fill
home bk 130 rt 90 bk 100
label (list "diÖn "tÝch "phÇn "t« "mµu "®á "lµ: 200*200*3.14/4-200*200/2)
pd ht setpc 0 setfc 0
END
sao mình thử lệnh này ko đc vậy bạn
Bạn phải ghi rõ lệnh nào, tốt nhất là chụp màn hình gửi lên fanpage chúng tôi sẽ hướng dẫn. Thông thường lỗi là do có sự khác biệt giữa MSWLogo và FMSWLogo. Trong bài này chúng tôi đã thử trên cả 2 và không có lỗi.
to h2
cs ht pd rt 90
make “h1 100*100
make “h2 :h1*3
make “h3 200*200
make “h4 200*200*pi
make “h5 :h4/4
make “h6 :h3-:h5
make “h7 :h1*pi/4
make “h8 :h1-:h7
make “fn :h3-:h6-:h1-:h7-:h8
label (list :fn)
end
Hay quá