1000个同心正方形逐渐缩小,10种颜色,每种颜色100个正方形,最外层变长为1000 python怎么编程啊 python怎么编程啊😭
该回答引用chatgpt:
import turtle
# 定义参数
num_colors = 10
squares_per_color = 100
outer_square_length = 1000
inner_square_length = outer_square_length / num_colors
pen_size = 2
# 初始化画布和画笔
turtle.setup(outer_square_length*2, outer_square_length*2)
turtle.penup()
turtle.goto(-outer_square_length, outer_square_length)
turtle.pendown()
turtle.pensize(pen_size)
# 循环绘制正方形
for i in range(num_colors):
# 选择颜色
color = (i/(num_colors-1), 0, 1-i/(num_colors-1)) # 从红到蓝的渐变色
turtle.color(color)
for j in range(squares_per_color):
# 绘制正方形
turtle.forward(inner_square_length)
turtle.right(90)
turtle.forward(inner_square_length)
turtle.right(90)
turtle.forward(inner_square_length)
turtle.right(90)
turtle.forward(inner_square_length)
turtle.right(90)
# 缩小正方形
outer_square_length -= inner_square_length*2
inner_square_length = outer_square_length / num_colors
turtle.penup()
turtle.goto(-outer_square_length, outer_square_length)
turtle.pendown()
# 隐藏画笔
turtle.hideturtle()
# 显示画布
turtle.done()
不知道你这个问题是否已经解决, 如果还没有解决的话:import cv2
import numpy as np
import matplotlib.pyplot as plt
#更改为需要的图片路径
img = cv2.imread(r'C:\Users\xxx\Desktop\dollar.tif',0)
h,w = img.shape[0],img.shape[1]
#处理过程
new_img = np.zeros((h,w,8))#用于存放每个比特位图,行h列w高8
for i in range(h):
for j in range(w):
n = str(np.binary_repr(img[i,j],8)) #将图像的灰度值转化为8位二进制数值,并且以str字符串的形式返回
for k in range(8):
new_img[i,j,k] = n[k]#依次从二进制的高位到低位赋值给new_img中,这样就将一个灰度值用8位的二进制表达出来了
#依次显示
for i in range(8):#将比特图从高到低显示出来,从第8比特图从第1比特图
cv2.imshow('image',new_img[:,:,i])
cv2.waitKey(0)