-7

tự hào

đã đăng vào 14, Tháng 7, 2025, 8:54

૮₍ ˶ᵔ ᵕ ᵔ˶ ₎ა import math

WIDTH = 50 HEIGHT = 25

REDBG = "\033[41m \033[0m" YELLOWSTAR = "\033[1;33m★\033[0m"

def rotate(cx, cy, x, y, angledeg): angle = math.radians(angledeg) s = math.sin(angle) c = math.cos(angle) x -= cx y -= cy xnew = x * c - y * s ynew = x * s + y * c return xnew + cx, ynew + cy

def inside_polygon(px, py, polygon): count = 0 n = len(polygon) for i in range(n): x1, y1 = polygon[i] x2, y2 = polygon[(i + 1) % n] if ((y1 <= py < y2) or (y2 <= py < y1)): if px < (x2 - x1) * (py - y1) / (y2 - y1 + 1e-9) + x1: count += 1 return count % 2 == 1

def generatestar(cx, cy, R): r = R * math.sin(math.pi / 10) / math.sin(3 * math.pi / 10) star = [] for i in range(5): outerangle = -90 + i * 72 innerangle = outerangle + 36 ox = cx + R * math.cos(math.radians(outerangle)) oy = cy + R * math.sin(math.radians(outerangle)) ix = cx + r * math.cos(math.radians(innerangle)) iy = cy + r * math.sin(math.radians(innerangle)) star.append((ox, oy)) star.append((ix, iy)) return star

def drawflag(): cx = WIDTH / 2 cy = HEIGHT / 2 star = generatestar(cx, cy, R=6.5)

for y in range(HEIGHT):
    for x in range(WIDTH):
        if inside_polygon(x + 0.5, y + 0.5, star):
            print(YELLOW_STAR, end='')
        else:
            print(RED_BG, end='')
    print()

draw_flag()


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.