我如何在最大值中使用循环来绘制多个向量?

How do i use a loop in maxima to plot multiple vectors?

我正在尝试为任何点 (x,y) 绘制一些 [x,-y] 形式的向量,所以我尝试了这个:

for i:1 while i<=21 do 
    (for j:1 while j<=21 do
      (draw2d(
        xrange=[0,50],
        yrange=[0,50],
        vector([i,j],[i,-j])
        )
       ));

但是 gnuplot window 在每次迭代时都会刷新,所以我尝试将这两个循环放在 draw2d 之后和“vector”之前,但这也不起作用。

draw2d(同样是 draw3d)绘制了一个完整的“场景”,由其参数描述。参数中的所有内容都是一个“场景”。因此,要创建一个包含不同事物的场景,您需要制作一个包含所有您想要的事物的列表,然后对其应用 draw2d,即告诉 Maxima 使用该列表调用 draw2d参数。

这里有一个例子来说明这一点。我将首先创建所有向量的列表。 vector图形对象带有一些选项,如head_type等。我将制作一个包含我想要的选项的列表,然后附加选项和向量列表以获取我想要的所有参数。最后调用draw2d显示场景

(%i2) load (draw) $
(%i3) myvectors: makelist (makelist (vector([i, j], [i, -j]), j, 1, 5), i, 1, 5);
(%o3) [[vector([1, 1], [1, - 1]), vector([1, 2], [1, - 2]), 
vector([1, 3], [1, - 3]), vector([1, 4], [1, - 4]), 
vector([1, 5], [1, - 5])], [vector([2, 1], [2, - 1]), 
vector([2, 2], [2, - 2]), vector([2, 3], [2, - 3]), 
vector([2, 4], [2, - 4]), vector([2, 5], [2, - 5])], 
[vector([3, 1], [3, - 1]), vector([3, 2], [3, - 2]), 
vector([3, 3], [3, - 3]), vector([3, 4], [3, - 4]), 
vector([3, 5], [3, - 5])], [vector([4, 1], [4, - 1]), 
vector([4, 2], [4, - 2]), vector([4, 3], [4, - 3]), 
vector([4, 4], [4, - 4]), vector([4, 5], [4, - 5])], 
[vector([5, 1], [5, - 1]), vector([5, 2], [5, - 2]), 
vector([5, 3], [5, - 3]), vector([5, 4], [5, - 4]), 
vector([5, 5], [5, - 5])]]
(%i4) vector_options: [head_length = 0.2, head_angle = 15, head_type = empty];
(%o4) [head_length = 0.2, head_angle = 15, head_type = empty]
(%i5) append (vector_options, myvectors);
(%o5) [head_length = 0.2, head_angle = 15, head_type = empty, 
[vector([1, 1], [1, - 1]), vector([1, 2], [1, - 2]), 
vector([1, 3], [1, - 3]), vector([1, 4], [1, - 4]), 
vector([1, 5], [1, - 5])], [vector([2, 1], [2, - 1]), 
vector([2, 2], [2, - 2]), vector([2, 3], [2, - 3]), 
vector([2, 4], [2, - 4]), vector([2, 5], [2, - 5])], 
[vector([3, 1], [3, - 1]), vector([3, 2], [3, - 2]), 
vector([3, 3], [3, - 3]), vector([3, 4], [3, - 4]), 
vector([3, 5], [3, - 5])], [vector([4, 1], [4, - 1]), 
vector([4, 2], [4, - 2]), vector([4, 3], [4, - 3]), 
vector([4, 4], [4, - 4]), vector([4, 5], [4, - 5])], 
[vector([5, 1], [5, - 1]), vector([5, 2], [5, - 2]), 
vector([5, 3], [5, - 3]), vector([5, 4], [5, - 4]), 
vector([5, 5], [5, - 5])]]
(%i6) apply (draw2d, %);

当然,你可以重做这个例子,向量的数量等于 21^2 而不是 5^2,你可以根据需要更改选项。您还可以创建其他图形对象并将它们附加到参数列表,然后将 draw2d 应用于所有参数。