我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python使用海龟turtle实现绘制汉字、中文

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python使用海龟turtle实现绘制汉字、中文

一、实现要求

        使用python中的turtle库绘制指定汉字、中文


二、实现思路

       1、要想实现汉字的绘制,首先需要知道汉字的笔画坐标,汉字的笔画坐标在网上有,需要使用爬虫技术抓取到指定汉字的笔画坐标信息

  2、根据汉字的笔画坐标信息,使用turrle绘制出相应的笔画,即可实现汉字的绘制


三、代码实现

1、导入需要使用到的模块信息:

import turtleimport requestsfrom urllib.parse import quoteimport re

   

2、首先,汉字的笔画坐标信息,可以在这里获取到:

https://bihua.bmcx.com/web_system/bmcx_com_www/system/file/bihua/get_0/

    因此编写函数向该网址发送数据请求信息:

ef get_word_coordinate(target_word):    """    获取指定汉字的笔画坐标    :param target_word:    :return:    """    url = "https://bihua.bmcx.com/web_system/bmcx_com_www/system/file/bihua/get_0/"    params = {        'font': quote(target_word).replace("%", "").lower(),        'shi_fou_zi_dong': '1',        'cache_sjs1': '20031914',    }    response = requests.get(url, params=params)    content = response.text    content = content.replace('hzbh.main(', '').split(');document.getElementById')[0]    content = content.split('{')[-1].split("}")[0]    pattern = re.compile(r'\w:\[(.+?)\]')    result = re.split(pattern, content)    order_xy_routine = []    words_cnt = 0    for r in result:        sec = re.findall(r'\'.+?\'', r)        if len(sec):            orders = sec[1].split('#')            for order in orders:                order_str = re.findall(r'\(\d+,\d+\)', order)                order_xy = [eval(xy) for xy in order_str]                order_xy_routine.append(order_xy)            words_cnt += 1    print(order_xy_routine)    return order_xy_routine

  该请求需要传递三个参数。数据的发回结果是一个html格式的数据,需要使用到正则表达式进行笔画坐标的解析和处理,最终得到指定汉字的坐标信息,是一个er二维的列表,形式如下所示:

[[(666, 36), (696, 66), (480, 108), (300, 138)], [(510, 102), (510, 558)], [(510, 318), (690, 318), (648, 300), (606, 318)], [(342, 234), (372
, 258), (372, 558), (342, 582), (372, 558), (696, 558), (648, 540), (600, 558)], [(36, 114), (228, 114), (270, 84), (228, 114), (90, 330), (48
, 354), (90, 330), (246, 330), (288, 300), (246, 330), (210, 522), (192, 594), (162, 642), (120, 690), (30, 750)], [(84, 390), (120, 474), (15
6, 540), (204, 600), (270, 654), (318, 678), (372, 690), (726, 702)]]
 

编写函数,调用汉字笔画坐标的获取方法,根号就坐标信息,实现指定汉字的绘制

def draw_words(target_words, startx, starty):    """    绘制汉字    :param target_words:    :param startx:    :param starty:    :return:    """    turtle.color("black", "black")  # 设置画笔颜色    turtle.pu()  # 抬起画笔    coordinates = get_word_coordinate(target_words)    for index, coordinate in enumerate(coordinates):        turtle.goto((startx + coordinate[0][0]) / 2, -(starty + coordinate[0][1]) / 2)        turtle.pd()        for xy in coordinate:            x, y = xy            turtle.goto((startx + x) / 2, -(starty + y) / 2)        turtle.pu()

  传入三个参数,第一个参数是要绘制的汉字,一次只能一个,如果要实现绘制多个,则调用该方法多次。第二三个参数分别是绘制汉字的起始x、y坐标,用于控制汉字绘制的位置。

编写主函数,调用绘制汉字的方法,传入要绘制的汉字,实现汉字的绘制效果

if __name__ == '__main__':    #要绘制的汉字    words = ['你','好']    start_x = -900    for w in words:        draw_words(w, start_x, -300)        start_x+=800    turtle.done()

  注意画笔的坐标要设置为负数。


四、运行效果

 1、

 

 3、

 

来源地址:https://blog.csdn.net/c1007857613/article/details/130758639

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python使用海龟turtle实现绘制汉字、中文

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python使用海龟绘图实现贪吃蛇游戏

在实现贪吃蛇游戏时,首先需要使用python内置的turtle模块来实现创建游戏窗体与键盘按键的监听工作,然后使用freegames模块进行贪吃蛇的绘制工作。 1、turtle模块 turtle模块是python的内置模块,所以在使用前需要
2022-06-02

python怎么使用for循环和海龟绘图实现漂亮螺旋线

这篇“python怎么使用for循环和海龟绘图实现漂亮螺旋线”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么使
2023-07-02

使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实现

以下是使用Python的turtle库绘制樱花、玫瑰和圣诞树的代码实现。樱花:```pythonimport turtledef draw_branch(branch_len):if branch_len > 3:if branch_len
2023-09-17

利用Python实现绘制论文中的曲线图

这篇文章主要为大家详细介绍了如何利用Python语言实现绘制论文中需要的曲线图,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2023-03-24

使用Java怎么实现统计字符串中汉字与英文的数量

这期内容当中小编将会给大家带来有关使用Java怎么实现统计字符串中汉字与英文的数量,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:package org.zhy.demo.algorithm;/*
2023-05-31

使用Python中的pytesseract模块实现抓取图片中文字

最近同事用网上提供扫描软件进行扫描识别文字,每天上线只能够做两次扫描,请求我研发一个小工具帮助解决识别图片的中文字,最终我选择使用pytesseract模块可以解决这个需求问题,本文给大家分享实现代码操作感兴趣的朋友跟随小编一起看看吧
2022-11-13

使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码)

这篇文章主要介绍了使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码),本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-02-16

在Java项目中使用字节流如何实现一个文件复制功能

这篇文章将为大家详细讲解有关在Java项目中使用字节流如何实现一个文件复制功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体内容如下import java.io.FileInputStr
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录