返回
动手1小时,“罗盘时钟”轻松搞定
前端
2023-09-23 14:08:12
用1小时打造你的“罗盘时钟”
灵 cảm của chiếc đồng hồ độc đáo này đến từ phần mềm bảo vệ màn hình world-clock. Vào một đêm khuya nọ, tôi đã quyết định sẽ tự tạo ra một chiếc đồng hồ như vậy. Hướng dẫn này sẽ chỉ cho bạn cách sắp xếp nhiều thành phần thành một hình tròn.
Vật liệu:
- Máy tính
- Phần mềm thiết kế (ví dụ: Figma, Adobe XD)
Các bước:
- Tạo một hình tròn: Trong phần mềm thiết kế của bạn, hãy tạo một hình tròn sẽ làm nền cho đồng hồ.
- Đặt các thành phần: Thêm các thành phần của đồng hồ vào hình tròn, chẳng hạn như mặt số, kim giờ và kim phút. Sử dụng các công cụ căn chỉnh để đảm bảo các thành phần được sắp xếp đều.
- Tạo hiệu ứng la bàn: Để tạo hiệu ứng la bàn, hãy thêm các đường chia độ xung quanh hình tròn, đại diện cho các hướng khác nhau.
- Tùy chỉnh các thành phần: Tùy chỉnh kích thước, màu sắc và kiểu dáng của các thành phần để phù hợp với sở thích của bạn.
- Xuất tệp: Khi bạn đã hoàn thành thiết kế, hãy xuất tệp ở định dạng mong muốn (ví dụ: PNG, SVG).
Mã nguồn:
Mã nguồn ví dụ bằng Python để tạo đồng hồ la bàn:
import turtle
# Tạo màn hình hình tròn
screen = turtle.Screen()
screen.setup(width=500, height=500)
screen.bgcolor("black")
# Vẽ hình tròn
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.circle(200)
# Thêm các đường chia độ
for i in range(12):
turtle.penup()
turtle.goto(0, 200)
turtle.pendown()
turtle.goto(0, 180)
turtle.penup()
turtle.forward(20)
turtle.write(str(i), align="center")
# Thêm kim giờ và kim phút
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.pencolor("white")
turtle.forward(100)
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.pencolor("red")
turtle.forward(50)
# Cập nhật thời gian theo thời gian thực
while True:
# Lấy thời gian hiện tại
hour = datetime.datetime.now().hour
minute = datetime.datetime.now().minute
# Đặt vị trí kim giờ
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.setheading(hour * 30)
turtle.forward(100)
# Đặt vị trí kim phút
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.setheading(minute * 6)
turtle.forward(50)
# Cập nhật màn hình
screen.update()