跳至內容

File:八數相對圖.svg

頁面內容不支援其他語言。
維基文庫,自由的圖書館

原始檔案 (SVG 檔案,表面大小:300 × 300 像素,檔案大小:2 KB)

摘要

描述
中文:八數相對圖
日期
來源 自己的作品
作者 Zy26
import svgwrite
import math

# Constants
CONFIG = {
    'svg_file_path': '八數相對圖.svg',
    'circle_text_data': [
        {'angle': 0, 'main_text': "凶", 'sub_text': "火九"},
        {'angle': 45, 'main_text': "咎", 'sub_text': "金二"},
        {'angle': 90, 'main_text': "災", 'sub_text': "金七"},
        {'angle': 135, 'main_text': "悔", 'sub_text': "水六"},
        {'angle': 180, 'main_text': "吉", 'sub_text': "水一"},
        {'angle': -135, 'main_text': "休", 'sub_text': "木三"},
        {'angle': -90, 'main_text': "祥", 'sub_text': "木三"},
        {'angle': -45, 'main_text': "吝", 'sub_text': "火四"}
    ],
    'svg_side_length': 300,
    'main_circle_radius': 130,
    'text_circle_radius': 100,
    'font_size_main': 20,
    'font_size_sub': 10,
    'text_offset': 20,
    'stroke_color': "black",
    'fill_color': "none",
    'text_fill_color': "black",
    'text_anchor': "middle"
}

def add_circle(drawing, center, radius, stroke_color, fill_color):
    drawing.add(drawing.circle(center=(center, center), r=radius, stroke=stroke_color, fill=fill_color))

def add_text(drawing, center, text_data, text_circle_radius, font_size_main, font_size_sub, text_offset, text_fill_color, text_anchor):
    for data in text_data:
        angle = data['angle']
        rad = math.radians(angle)
        x = center + text_circle_radius * math.sin(rad)
        y = center - text_circle_radius * math.cos(rad)
        text_group = drawing.g(transform=f"rotate({angle}, {x}, {y})")
        text_group.add(drawing.text(data['main_text'], insert=(x, y), fill=text_fill_color, font_size=f"{font_size_main}px", text_anchor=text_anchor))
        text_group.add(drawing.text(data['sub_text'], insert=(x, y + text_offset), fill=text_fill_color, font_size=f"{font_size_sub}px", text_anchor=text_anchor))
        drawing.add(text_group)

def generate_svg(config):
    center = config['svg_side_length'] / 2
    drawing = svgwrite.Drawing(config['svg_file_path'], profile='tiny', size=(f"{config['svg_side_length']}px", f"{config['svg_side_length']}px"))
    add_circle(drawing, center, config['main_circle_radius'], config['stroke_color'], config['fill_color'])
    add_text(drawing, center, config['circle_text_data'], config['text_circle_radius'], config['font_size_main'], config['font_size_sub'], config['text_offset'], config['text_fill_color'], config['text_anchor'])
    drawing.save()

generate_svg(CONFIG)

授權條款

我,本作品的著作權持有者,決定用以下授權條款發佈本作品:
Creative Commons CC-Zero 此檔案在創用CC CC0 1.0 通用公有領域貢獻宣告之下分發。
在此宣告之下分發本作品者,已依據各國著作權法,在全世界放棄其對本作品所擁有的著作權及所有相關相似的法律權利,從而將本作品貢獻至公有領域。您可以複製、修改、分發和演示該作品,用於任何商業用途,所有這些都不需要請求授權。

說明

添加單行說明來描述出檔案所代表的內容
八數相對圖

在此檔案描寫的項目

描繪內容

檔案來源 Chinese (Taiwan) (已轉換拼寫)

image/svg+xml

檔案歷史

點選日期/時間以檢視該時間的檔案版本。

日期/時間縮⁠圖尺寸使用者備⁠註
目前2024年8月21日 (三) 02:39於 2024年8月21日 (三) 02:39 版本的縮圖300 × 300(2 KB)Zy26minor edit
2024年8月21日 (三) 02:21於 2024年8月21日 (三) 02:21 版本的縮圖300 × 300(2 KB)Zy26minor fix
2024年8月21日 (三) 01:47於 2024年8月21日 (三) 01:47 版本的縮圖300 × 300(2 KB)Zy26fix angle
2024年8月21日 (三) 00:34於 2024年8月21日 (三) 00:34 版本的縮圖300 × 300(2 KB)Zy26typo
2024年8月21日 (三) 00:02於 2024年8月21日 (三) 00:02 版本的縮圖300 × 300(2 KB)Zy26typo
2024年8月20日 (二) 23:43於 2024年8月20日 (二) 23:43 版本的縮圖300 × 300(2 KB)Zy26Uploaded own work with UploadWizard

下列頁面有用到此檔案:

詮釋資料