2016-10-30 66 views
0

所以我的计划是为了操纵某个坐标,以创造这一形象: ![image绘制随机界蟒蛇斜率

所以基本上我的计划画一堆随机圈,我必须处理的行公式来创建红色部分。到目前为止,我的图像如下:

enter image description here 我似乎无法弄清楚如何添加另一条线方程来创建另一个红色部分。任何帮助将不胜感激!

# using the SimpleGraphics library 
from SimpleGraphics import * 

# tell SimpleGraphics to only draw when I use the update() function 
setAutoUpdate(False) 


# use the random library to generate random numbers 
import random 


# size of the circles drawn 
diameter = 15 

resize(600, 400) 


## 
# returns a vaid color based on the input coordinates 
# 
# @param x is an x-coordinate 
# @param y is a y-coordinate 
# @return a colour based on the input x,y values for the given flag 
## 
def define_colour(x,y): 
    ## 
    #add your code to this method and change the return value 
    slopeOne = (200 - 300)/(0-150) 
    b = 0 - (slopeOne * 200) 
    slopeTwo = (0-300)/(200 - 800) 
    b = 150 - (slopeTwo * 40) 



    lineEquationOne = (slopeOne * x) + b 
    lineEquationTwo = (slopeTwo * x) + b 

    if y > lineEquationOne: 
    return "red" 
    elif y > lineEquationTwo: 
    return "red" 
    else: 
    return 'white' 





###################################################################### 
# 
# Do NOT change anything below this line 
# 
###################################################################### 

# repeat until window is closed 
while not closed(): 
    for i in range(500): 
    # generate random x and y values 
    x = random.randint(0, getWidth()) 
    y = random.randint(0, getHeight()) 

    # set colour for current circle 
    setFill(define_colour(x,y)) 

    # draw the current circle 
    ellipse(x, y, diameter, diameter) 

    update() 
+0

SimpleGraphics库从哪里来?我们如何获得副本? – martineau

回答

0

你快到了。在第二个斜率和方程的注释行中添加回来,并确保您的变量名称匹配。那么你只需要为你的if语句添加一个OR条件来根据每个等式设置颜色。

# using the SimpleGraphics library 
from SimpleGraphics import * 

# tell SimpleGraphics to only draw when I use the update() function 
setAutoUpdate(False) 

# use the random library to generate random numbers 
import random 

# size of the circles drawn 
diameter = 15 

resize(600, 400) 


## 
# returns a valid color based on the input coordinates 
# 
# @param x is an x-coordinate 
# @param y is a y-coordinate 
# @return a colour based on the input x,y values for the given flag 
## 
def define_colour(x, y): 
    slopeOne = (200 - 300)/(0 - 150) 
    b = 0 - (slopeOne * 200) 
    slopeTwo = (200 - 300)/(0 - 150) 
    b2 = -50 - (slopeTwo * 200) 

    lineEquationOne = (slopeOne * x) + b 
    lineEquationTwo = (slopeTwo * x) + b2 

    if (y > lineEquationOne) | (y < lineEquationTwo): 
     return "white" 
    else: 
     return 'red' 


###################################################################### 
# 
# Do NOT change anything below this line 
# 
###################################################################### 

# repeat until window is closed 
while not closed(): 
    for i in range(500): 
     # generate random x and y values 
     x = random.randint(0, getWidth()) 
     y = random.randint(0, getHeight()) 

     # set colour for current circle 
     setFill(define_colour(x, y)) 

     # draw the current circle 
     ellipse(x, y, diameter, diameter) 

    update() 
+0

所以我编辑了我的评论,但我仍然没有得到我想要的图像 –

+0

@ JaneDoe2我编辑了我的答案,包括一个工作示例 - 您可以通过更改等式来修改它以获取您想要的图像。 – Daniel