2016-06-13 7 views
0

私は学校でこの練習をしています。既存の画像にグリッドを描く関数を作成します。 draw_grid(IMG、S、C) IMG - 画像 S - 私はそれだけで水平線を生成有するコードで色Pythonで画像グリッドを描く

def draw_grid(img, s, c): 
     a = s 
     b = s 
     for i in range(len(img)): 
      for j in range(len(img[0])): 
       if i == a: 
        img[i][j] = c 
      if img[i][j] == c: 
       a = a + s 
     for i in range(len(img)): 
      for j in img[i]: 
       if img[i].index(j) == b: 
        img[i][img[i].index(j)] = c 
        b = b + s 
     im.visd(img) 
    import image as im 
    img = im.create(200, 100, (200,200,200)) 

- ライン Cの間隔。

this is what i`ve got so far:

+0

「有効ではありません」は有効な問題の説明ではありません。そして、私は図書館ですか?その場合は、そのタグを追加します。 – polku

+0

imはイメージライブラリです。私はそれを追加しました。私は新しい記述が大丈夫だと思う。私はこれで新しいものです。 – Doni

答えて

0

私は、インデックスがリスト内の引数の最初に現れるインデックスを返す、あなたの問題はif img[i].index(j) == b:であると思うが、jは、すでにインデックスではなく、あなたが探している要素でなければなりませんあなたのイメージで。あなたは3つの引数で範囲を使用する場合

あなたのループが複雑すぎると思われる、あなたは、Bまたは「が」必要はありません、3番目の引数は増加のためのステップです:

for i in range(0, 10, 2): 
    print(i) # print 0, 2, 4, 6, 8 

だから

for i in range(0, len(img), s): 
    for j in range(len(img[0])): 
     img[i][j] = c 
for i in range(0, len(img[0]), s): 
    for j in range(len(img)): 
     img[j][i] = c 
+0

Ty!素晴らしい人です。今、2日間この作業をしています。私はこのようにrange()を使うことはできません。もう一度Ty。 – Doni