Chỉ đưa ra một đường thẳng và la bàn, ghi một hình thoi bên trong hình chữ nhật đã cho, chia sẻ hai điểm đối diện.
Đầu vào
Đầu vào là kích thước của hình chữ nhật. Trong ví dụ hiển thị, đó sẽ là 125, 50
. Bạn có thể lấy đầu vào theo bất kỳ cách nào thuận tiện nhất (như hai số nguyên, danh sách, chuỗi, v.v.).
Kích thước lớn hơn sẽ là tối thiểu 100, trong khi kích thước nhỏ hơn sẽ là tối thiểu 25. Cả hai nắp ở mức 200.
Đầu ra
Đầu ra sẽ là một hình ảnh (hiển thị trên màn hình hoặc được lưu dưới dạng tệp) hiển thị
- Hình chữ nhật đầu vào
- Tất cả các dòng / vòng tròn "làm việc"
- Hình thoi được khắc
trong màu sắc riêng biệt. Trong hình trên, Hình chữ nhật có màu đen, đường làm việc màu xanh lam và hình thoi màu cam. Các dòng nên được vẽ theo thứ tự hiển thị trong danh sách (ví dụ hình thoi ghi đè lên các dòng làm việc và hình chữ nhật).
Hình ảnh đầu ra cần phải đủ lớn để chứa mọi thứ. Ví dụ: các vòng tròn hiển thị không thể vượt quá giới hạn.
phương pháp
Phương pháp được sử dụng trong hình ảnh ví dụ ở trên là:
- Vẽ một vòng tròn sử dụng góc dưới bên trái làm trung tâm và phía trên bên phải làm điểm trên chu vi, cho bán kính bằng đường chéo của hình chữ nhật.
- Làm tương tự, nhưng hoán đổi trung tâm và điểm chu vi.
- Vẽ một đường thẳng giữa các giao điểm của hai vòng tròn, cho một đường phân giác vuông góc với đường chéo của hình chữ nhật.
- Sử dụng các giao điểm của dòng mới và hình chữ nhật để vẽ hình thoi.
Điều này hoạt động vì các đường chéo bên trong của một hình thoi luôn vuông góc với nhau. Tôi không bao gồm một bằng chứng đầy đủ về điều này ở đây, mặc dù.
Đây không phải là phương pháp duy nhất để có được hình thoi của bạn và bạn có thể sử dụng một phương pháp khác, với điều kiện bạn giải thích những gì bạn đang làm. Tôi tin rằng nó có thể là dễ nhất, mặc dù.
Quy tắc
Bạn chỉ có thể vẽ các vòng tròn và đường (hoặc đúng hơn là các đoạn đường). Một vòng tròn được xác định với điểm trung tâm và điểm chu vi. Một dòng được xác định bởi bất kỳ hai điểm. Các dòng không phải có bất kỳ độ dài xác định nào, nhưng ít nhất chúng phải bao gồm các điểm xác định (lưu ý hình ảnh ví dụ: dòng đi qua một chút các giao điểm của vòng tròn, nhưng không đi ra cạnh). Đối với các vòng tròn, bán kính từ tâm đến điểm chu vi đã chọn được coi là một đường làm việc và phải được hiển thị.
Để rasterize các dòng, bạn có thể sử dụng bất kỳ thuật toán được công nhận nào (ví dụ: Bresenham's) hoặc dựa vào bất kỳ nội dung nào mà ngôn ngữ của bạn có thể có. Nếu đầu ra của bạn dựa trên vectơ, vui lòng đảm bảo rằng nó được hiển thị ở độ phân giải ít nhất bằng hình chữ nhật đầu vào tính bằng pixel. Ngoài ra, bạn sẽ vẽ trên một khung vẽ đơn giản, vì vậy vui lòng loại bỏ bất kỳ dấu lưới hoặc đầu ra không liên quan nào.
Không gian lận! Bạn chỉ có thể xác định vị trí của các điểm / đường / vòng tròn bằng cách sử dụng những gì bạn đã thiết lập cho đến nay. Nếu bạn không thể giải thích cách sử dụng các đường / vòng tròn làm việc của mình để hiển thị đó là hình thoi, bạn đã làm sai.
Bạn có thể sử dụng bất kỳ cặp điểm đối diện nào bạn muốn và hình chữ nhật không cần phải được căn chỉnh theo trục, miễn là đầu ra là chính xác.
Đầu vào sẽ luôn là một hình chữ nhật không vuông, vì vậy đừng lo lắng về vỏ đặc biệt đó.
Cuối cùng, đây là mã golf tiêu chuẩn, vì vậy kích thước thấp nhất tính bằng byte sẽ thắng.