2016-09-08 5 views
0

ここでCS学生が入門します。私は、Python 2.7の亀頭オブジェクト、左上隅の座標、および引数として右下隅の座標だけを持つ関数を使用して長方形を描画しようとしています。私は四角形を描く簡単な方法があることを知っていますが、コーナー座標だけを使ってそれをやろうとしています。私の現在のコードを実行した後、私は次の取得2コーナー座標を使用したPython Turtle Rectangle

はTypeError:タイプの非整数「フロート」でシーケンスを乗算することはできません

私はこれはおそらく単純なものである知っているが、私は問題を抱えています私が間違っていることを考え出して助けてくれれば幸いです。

次のように私のコードは次のとおりです。

私は turtleモジュール、ない turtlegraphicsを使用しますが、私の推測では、この2行が問題であるさ
from turtlegraphics import Turtle 

def drawLine(t1,x1,y1,x2,y2): 
    t1.setWidth(1) 
    t1.setColor(0,0,0) 
    t1.up() 
    t1.move(x1,y1) 
    t1.down() 
    t1.move(x2,y2) 

def rectangleSimple(t2,upperLeftPoint,lowerRightPoint): 
    t2.setWidth(1) 
    t2.setColor(0,0,0) 
    t2.up() 
    t2.move(upperLeftPoint) 
    t2.down() 
    t2.setDirection(270) 
    t2.move(lowerRightPoint[2]) 
    t2.setDirection(0) 
    t2.move(lowerRightPoint) 
    t2.setDirection(90) 
    t2.move(upperLeftPoint[2]) 
    t2.setDirection(180) 
    t2.move(upperLeftPoint) 

def main(): 

    t1 = Turtle()      
    x1 = 0 
    y1 = 0 
    x2 = 50 
    y2 = 0 

    drawLine(t1,x1,y1,x2,y2) 

    t2 = Turtle() 
    upperLeftPoint = (-100,50) 
    lowerRightPoint = (100,-50) 

    rectangleSimple(t2,upperLeftPoint,lowerRightPoint) 


main() 

答えて

0

t2.move(lowerRightPoint[2]) 
t2.move(upperLeftPoint[2]) 

あなた*ポイント変数が持つタプルです2つの値、X & Y、インデックス0 & 1であるが、インデックス2に存在しない第3の値にアクセスしている。あなたがしようとしていることを実装する方法はたくさんある。ここではturtle Pythonに付属のモジュール:

from turtle import Turtle 

X, Y = range(2) 

def drawLine(t, x1, y1, x2, y2): 
    t.up() 
    t.width(1) 
    t.pencolor(1, 0, 0) # red 
    t.goto(x1, y1) 
    t.down() 
    t.goto(x2, y2) 

def rectangleSimple(t, upperLeftPoint, lowerRightPoint): 
    t.up() 
    t.width(1) 
    t.pencolor(0, 1, 0) # green 
    t.goto(upperLeftPoint) 
    t.setheading(0) # East 
    t.down() 
    t.goto(lowerRightPoint[X], upperLeftPoint[Y]) 
    t.right(90) 
    t.goto(lowerRightPoint) 
    t.right(90) 
    t.goto(upperLeftPoint[X], lowerRightPoint[Y]) 
    t.right(90) 
    t.goto(upperLeftPoint) 

if __name__ == "__main__": 

    from turtle import done 

    t1 = Turtle()      

    drawLine(t1, 0, 0, 50, 0) 

    t2 = Turtle() 
    upperLeftPoint = (-100, 50) 
    lowerRightPoint = (100, -50) 

    rectangleSimple(t2, upperLeftPoint, lowerRightPoint) 

    done() 
+0

ありがとう、このような基本的なミスを犯した私の謝罪です。 – CFalco

関連する問題