嘿,大家好,我有一个问题。我想在 Python 中像素点一点一点地画一个圆形,但似乎做不到。
这是我的编程课上讨论的一个问题,我的老师说可以使用距离公式来查找窗口中心和圆周上的点之间的距离,然后如果符合条件就告诉程序来填充它。
所以这不是作业,纯粹出于我的好奇心。我已经花了几个小时的时间去研究它,感觉离成功很近,但还是缺少关键要素。
我的目标是在窗口中央放置一个红色圆圈,其宽度和高度在 300 和 400 之间。
我说中心点等于 (w/2, h/2),并且我想填充每个与该点相隔固定距离的点。
我选择 (100,50) 作为一个随机点,在使用那两个点之前,将变量距离 = 距离公式进行设定。
两个 for 循环用于迭代窗口中的每个像素。我能够创建一个正好位于圆形中心的框……但是我似乎无法得到任何接近圆形的东西。
这是我的代码,我将我的函数命名为日本国旗,因为似乎很合适:
import cImage
import math
def japanese_flag(w, h):
newimg = EmptyImage(w, h)
distance = int(math.sqrt((50 - h / 2) ** 2 + (100 - w / 2) ** 2))
for col in range(w):
for row in range(h):
if h/2 - distance < row < (h/2 + distance) and w / 2 - distance < col < (w / 2 + distance):
newpixel = Pixel(255, 0, 0) # this denotes the color red
newimg.setPixel(col, row, newpixel)
return newimg
def show_one_flag(func_name):
import random
width = random.randint(300, 400)
height = random.randint(200, 300)
win = ImageWin(str(func_name),width,height)
newimg = func_name(width, height)
newimg.draw(win)
show_one_flag(japanese_flag)