【教学类-63-01】20240606专注力测试6*6图形箭头

2024-06-06 21:04

本文主要是介绍【教学类-63-01】20240606专注力测试6*6图形箭头,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景需求:

就是在6*6单元格里随机出现“圆形、方形、上箭头、下箭头、左箭头、右箭头。

用AI对话大师书写

我用了7种几何图形(几何形)+4类箭头(文字符号)

代码展示


'''
箭头专注力
AI对话大师 阿夏
2024年6月6日
'''from PIL import Image, ImageDraw, ImageFont
import random
import mathpath = r'C:\Users\jg2yXRZ\OneDrive\桌面\箭头专注力'for xx in range(10):# 定义画布大小和边距canvas_width = 800canvas_height = 800margin = 40# 计算单元格大小cell_width = (canvas_width - 2 * margin) // 6cell_height = (canvas_height - 2 * margin) // 6# 创建画布image = Image.new("RGB", (canvas_width, canvas_height), "white")draw = ImageDraw.Draw(image)# 定义字体和文字大小font = ImageFont.truetype(r"C:\Windows\Fonts\simsun.ttc", 60)# 绘制单元格for i in range(7):x = margin + i * cell_widthy = margin + i * cell_heightdraw.line([(x, margin), (x, canvas_height - margin)], fill="black")draw.line([(margin, y), (canvas_width - margin, y)], fill="black")# 绘制图形for i in range(6):for j in range(6):x = margin + i * cell_widthy = margin + j * cell_height# 随机选择一个图形shape = random.choice(["circle", "triangle", "square", "diamond", "rectangle","ellipse", "trapezoid", "up_arrow", "down_arrow", "left_arrow", "right_arrow"])if shape == "circle":# 绘制圆形circle_diameter = min(cell_width, cell_height) // 4 * 2center_x = x + cell_width // 2center_y = y + cell_height // 2draw.ellipse([(center_x - circle_diameter / 2, center_y - circle_diameter / 2),(center_x + circle_diameter / 2, center_y + circle_diameter / 2)],outline="black", width=5)elif shape == "triangle":# 绘制等边三角形side_length = min(cell_width, cell_height) // 2triangle_height = side_length * math.sqrt(3) / 2top_point = (x + cell_width // 2, y + (cell_height - triangle_height) // 2)left_point = (top_point[0] - side_length / 2, top_point[1] + triangle_height)right_point = (top_point[0] + side_length / 2, top_point[1] + triangle_height)draw.polygon([top_point, left_point, right_point, top_point], outline="black", width=5)elif shape == "square":# 绘制正方形square_side = min(cell_width, cell_height) // 2left = x + cell_width // 2 - square_side // 2top = y + cell_height // 2 - square_side // 2right = x + cell_width // 2 + square_side // 2bottom = y + cell_height // 2 + square_side // 2draw.rectangle([(left, top), (right, bottom)], outline="black", width=5)elif shape == "diamond":# 绘制菱形diamond_width = min(cell_width, cell_height) // 2diamond_height = diamond_widthcenter_x = x + cell_width // 2center_y = y + cell_height // 2draw.polygon([(center_x, center_y - diamond_height // 2),(center_x + diamond_width // 2, center_y),(center_x, center_y + diamond_height // 2),(center_x - diamond_width // 2, center_y)],outline="black", width=5)elif shape == "rectangle":# 绘制长宽比为2:1的长方形rectangle_width = min(cell_width, cell_height) // 2rectangle_height = rectangle_width // 2left = x + cell_width // 2 - rectangle_width // 2top = y + cell_height // 2 - rectangle_height // 2right = x + cell_width // 2 + rectangle_width // 2bottom = y + cell_height // 2 + rectangle_height // 2draw.rectangle([(left, top), (right, bottom)], outline="black", width=5)elif shape == "ellipse":# 绘制2:1椭圆形ellipse_width = min(cell_width, cell_height) // 2ellipse_height = ellipse_width // 2left = x + cell_width // 2 - ellipse_width // 2top = y + cell_height // 2 - ellipse_height // 2right = x + cell_width // 2 + ellipse_width // 2bottom = y + cell_height // 2 + ellipse_height // 2draw.ellipse([(left, top), (right, bottom)], outline="black", width=5)elif shape == "trapezoid":# 绘制下边长、上边短的梯形trapezoid_bottom_width = min(cell_width, cell_height) // 2trapezoid_top_width = trapezoid_bottom_width - 40trapezoid_height = trapezoid_bottom_width // 2center_x = x + cell_width // 2center_y = y + cell_height // 2draw.polygon([(center_x - trapezoid_bottom_width // 2, center_y + trapezoid_height // 2),(center_x + trapezoid_bottom_width // 2, center_y + trapezoid_height // 2),(center_x + trapezoid_top_width // 2, center_y - trapezoid_height // 2),(center_x - trapezoid_top_width // 2, center_y - trapezoid_height // 2)],outline="black", width=5)# elif shape == "sector":#     # 绘制扇形#     sector_radius = min(cell_width, cell_height) // 2#     center_x = x + cell_width // 2#     center_y = y + cell_height // 2#     start_angle = random.randint(0, 360)#     end_angle = start_angle + random.randint(30, 300)#     draw.arc([(center_x - sector_radius, center_y - sector_radius),#               (center_x + sector_radius, center_y + sector_radius)],#               start=start_angle, end=end_angle, fill=None, width=5)if shape == "up_arrow":draw.text((x + cell_width // 2 - 30, y + cell_height // 2 - 30), "↑", fill="black", font=font)elif shape == "down_arrow":draw.text((x + cell_width // 2 - 30, y + cell_height // 2 - 30), "↓", fill="black", font=font)elif shape == "left_arrow":draw.text((x + cell_width // 2 - 30, y + cell_height // 2 - 30), "←", fill="black", font=font)elif shape == "right_arrow":draw.text((x + cell_width // 2 - 30, y + cell_height // 2 - 30), "→", fill="black", font=font)# 保存图片image.save(path + fr"\{xx:02d}.png")

还有一个平行四边形,始终无法符合我想要的效果。,就放弃了。

这篇关于【教学类-63-01】20240606专注力测试6*6图形箭头的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1037223

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------