Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在turtle、python中制作矩形?_Python - Fatal编程技术网

如何在turtle、python中制作矩形?

如何在turtle、python中制作矩形?,python,Python,python如何制作形状? 这就是我所做的 import turtle,random,sys turtle.title("SHOT") turtle.setup (width=800, height=600) turtle.bgcolor("light green") turtle.screensize(10, 400) class boxes: box_A = turtle.getturtle() box_B = turtle.getturtle() box

python如何制作形状? 这就是我所做的

import turtle,random,sys

turtle.title("SHOT")
turtle.setup (width=800, height=600)
turtle.bgcolor("light green")
turtle.screensize(10, 400)

class boxes:
     box_A = turtle.getturtle()
     box_B = turtle.getturtle()

     box_A.hideturtle()
     box_B.hideturtle()
     box_A.setposition(-300,0)
     box_A.setposition(300,0)
     box_A.showturtle()
     box_B.showturtle()
我的电脑画线。。。我不想排队。。。 所以我想抹掉这条线 我想做一个长方形的盒子(两个) 我试着用它做成长方形

 box_A.shape("rectangle")
当然,它不起作用

伙计们,请帮我画四条线:

 box_A.setposition(-300,0)
 box_A.setposition(-300,200)
 box_A.setposition(0,200)
 box_A.setposition(0,0)

我想这也是你想做的

import turtle
wn = turtle.Screen()
wn.tracer()

bird = turtle.Turtle()
bird.shape("square")
你必须做正方形,矩形不是海龟的形状

bird.shapesize(stretch_wid=5, stretch_len=10)
然后通过使宽度大于高度将其拉伸为矩形

bird.color("green")
bird.setpos(0, 0)
bird.penup()
Penup是指如果你移动它,它不会在它后面画一条线

bird.speed(0)
如果这样做,速度只会使动画瞬间发生

wn.exitonclick()

希望这有助于您使用坐标创建自定义形状。首先,做正常的陈述

import turtle

t = turtle.Turtle()
s = turtle.Screen() # The Screen is VERY important for this project!
好的!现在要更改
t
的形状,我们必须输入一组坐标。以下是我制作的一些预设:

Pointer: ((15,0),(0,25),(-15,0),(0,3))
Noel Star: ((0,20),(-5,5),(-20,0),(-5,-5),(0,-20),(5,-5),(20,0),(5,5))
X: ((15,15),(-15,-15),(0,0),(15,-15),(-15,15),(0,0))
Cross: ((-7.5,-15),(7.5,-15),(7.5,-7.5),(15,-7.5),(15,7.5),(7.5,7.5),(7.5,15),(-7.5,15),(-7.5,7.5),(-15,7.5),(-15,-7.5),(-7.5,-7.5))
Right Triangle: ((20,0),(0,-20),(0,0))
Arrow: ((-15,7.5),(-10,0),(-15,-7.5),(5,-7.5),(15,0),(5,7.5))
Parallelogram: ((-30,20),(-40,-20),(30,-20),(40,20)) 
Rhombus: ((0,-20),(-10,0),(0,20),(10,0))
Trapezoid: ((-20,20),(20,20),(30,0),(-30,0))
Pentagon: ((-5,10),(-10,0),(-5,-10),(5,-10),(10,0),(5,10))
Hexagon: ((-10,20),(-20,0),(-10,-20),(10,-20),(20,0),(10,20))
Octagon: ((-10,20),(10,20),(20,10),(20,-10),(10,-20),(-10,-20),(-20,-10),(-20,10))

矩形的坐标是:
(-20,10)、(20,10)、(20,-10)、(-20,-10))
。要将其注册为自定义形状,请使用
register\u shape()
函数。第一个参数是形状的名称;'在本例中为矩形。第二个参数是坐标,所以将它们另存为变量

rectCors = ((-20,10),(20,10),(20,-10),(-20,-10));
s.register_shape('rectangle',rectCors);
嗯。现在告诉海龟它的形状是一个长方形

t.shape('rectangle');
完成了!总的来说,这是:

import turtle
t = turtle.Turtle();
s = turtle.Screen();
rectCors = ((-20,10),(20,10),(20,-10),(-20,-10));
s.register_shape('rectangle',rectCors);
t.shape('rectangle');
注: 如果你想知道的话,除了
t.setheading(90)
t.setheading(-90)
,没有办法将形状从水平改为垂直

    object.shape("square")
    object.shapesize(X, Y)
这将根据其像素生成一个矩形 还是这样做

    object.shape("square")
    object.shapesize(stretch_wid=5, stretch_len=1)

这将根据5:1的比例生成一个矩形,每个单位是一个正方形

我想我的问题不完整。我正在尝试制作游戏。像愤怒的小鸟一样工作,所以我想在两边做两个矩形(300,0),(-300,0),然后创建两个球来射门,所以当一个玩家输入角度和速度时,球会被射门,玩家试图破坏另一个玩家的矩形框。你为什么在那里上课?类主体中的所有调用都将在类定义时发生,而实例化该类将不起任何作用。谢谢,我认为该类是一组变量,您确实有两个turtle实例作为类属性,但是,在类定义完成后,调用方法的东西已经执行了。此外,海龟笔先向左,然后向右,那么,我怎么能在两边只做两个盒子呢?