0

私の主張は次のとおりです。

self.draw(self.pen, side, u0, v0, x, y);

実行するには 6 つの引数が必要ですが、「self.pen」を 2 と見なしています。ありがとう

# A Mandelbrot patterns class:
class MandelbrotPatterns:
    # Initialize the pen, and determine the window width and height:
    def __init__(self):
        self.pen = turtle.Pen(); 
        self.width = self.pen.window_width();
        self.height = self.pen.window_height();

    # Given numbers self, u0, v0, and side, design a pattern:
    def mandelbrot(self, u0, v0, side):
        self.pen.tracer(False);   
        for x in range(-self.width/2, +self.width/2):
            for y in range (-self.height/2, +self.height/2):
                self.draw(self.pen, side, u0, v0, x, y);
            if (x % 20 == 0):
                self.pen.tracer(True); self.pen.tracer(False);
        self.pen.tracer(True);

    # Draw in color a pattern element at point (x, y):
    def draw(self, side, u0, v0, x, y):
        maxCount = 25;
        u = u0 + x * (side / 100.0);
        v = v0 - y * (side / 100.0);
        a = 0 ; b = 0; count = 0; 
        while (count < maxCount and a * a + b * b <= 4):
            count = count + 1;
            a1 = a * a - b * b + u;
            b1 = 2 * a * b + v;
            a = a1; b = b1;
        ez = float(count) / maxCount;
        color = colorsys.hsv_to_rgb(ez, ez, ez);
        self.pen.color(color);
        self.pen.up(); self.pen.goto(x, y); self.pen.down();
        self.pen.forward(1);
4

3 に答える 3

1

問題は次のとおりです。

def draw(self, side, u0, v0, x, y)

penパラメータがありません。これを試して:

def draw(self, pen, side, u0, v0, x, y)
于 2013-06-26T02:28:40.623 に答える
0

2とみなさず、第一引数としてself.pen入れています。selfこれは、すべてのオブジェクト メソッド関数で正常です。

あなたの定義には引数drawがありません。また、必要なときにいつでも使用する必要はありません。関数呼び出しからドロップするだけです。penself.pen

于 2013-06-26T02:09:52.973 に答える
0

自己はどのように初期化されますか? 私は次のようなものを想定しています:

class Foo(object):
def __init__(self, pen):
    self.pen = pen

def draw(self, pen, side, u0, v0, x, y):
    return pen,side,u0,v0,x,y

その場合は、次のとおりです。

foo1 = Foo('ink pen')
bar = foo1.draw(foo1.pen, 'left','0','1','2','3')

返す必要があります:

('ink pen', 'left', '0', '1', '2', '3')

編集:上記の追加コードを追加した後、問題が次のとおりであることが明らかになりました。

def draw(self, side, u0, v0, x, y):

「ペン」パラメータはありません。次のように更新する必要があります。

def draw(self, pen side, u0, v0, x, y):最初に上にリストしたように。

于 2013-06-26T02:15:02.687 に答える