Spirograph là một món đồ chơi thu hút hypotrochoids và epitrochoids. Đối với thử thách này, chúng ta sẽ chỉ tập trung vào các thuốc giảm đau.
Từ Wikipedia :
Một hypotrochoid là một roulette được theo dõi bởi một điểm gắn liền với một vòng tròn bán kính r lăn quanh bên trong một vòng tròn cố định bán kính R , trong đó điểm là một khoảng cách d từ tâm của vòng tròn bên trong.
Các phương trình tham số cho chúng có thể được định nghĩa là:
Trong đó θ là góc tạo bởi phương ngang và tâm của đường tròn lăn.
Nhiệm vụ của bạn là viết một chương trình sẽ vẽ đường dẫn được vạch ra bởi điểm được xác định ở trên. Là đầu vào, bạn sẽ được cấp R , r và d , tất cả các số nguyên nằm trong khoảng từ 1 đến 200.
Bạn có thể nhận đầu vào này từ stdin, đối số hoặc đầu vào của người dùng, nhưng nó không thể được mã hóa cứng vào chương trình. Bạn có thể chấp nhận nó dưới bất kỳ hình thức nào thuận tiện nhất cho bạn; như chuỗi, số nguyên, vv
Giả định:
- Đơn vị đầu vào được đưa ra bằng pixel.
- R > = r
Đầu ra phải là một biểu diễn đồ họa của hypotrochoid được xác định bởi đầu vào. Không cho phép ASCII- hoặc đầu ra dựa trên văn bản khác. Hình ảnh này có thể được lưu vào một tập tin hoặc hiển thị trên màn hình. Bao gồm một ảnh chụp màn hình hoặc hình ảnh của đầu ra cho đầu vào của sự lựa chọn của bạn.
Bạn có thể chọn bất kỳ màu nào bạn thích cho đường dẫn / nền, theo giới hạn tương phản. Hai màu phải có thành phần 'Giá trị' HSV cách nhau ít nhất một nửa tỷ lệ. Chẳng hạn, nếu bạn đang đo HSV từ [0...1]
đó, nên có ít nhất 0.5
sự khác biệt. Giữa [0...255]
nên có một 128
sự khác biệt tối thiểu .
Đây là một mã golf, kích thước tối thiểu của mã nguồn tính bằng byte thắng.
R>=r
, nhưng d
không bị hạn chế r
và có thể ở bất kỳ đâu trong phạm vi 1-200.
R=200, r=1, d=200
. Bạn có thể kích thước hình ảnh thành đầu vào nếu bạn muốn hoặc giữ nó ở kích thước không đổi, miễn là nó hiển thị.
R > r
hayR ≥ r
không? (Tương tự chor
vàd
.)