Что означает проблема (строки-1, столбцы-1)?
Это связано с вашей загадочной переменной m
и функцией order()
, которую вы оставили неопределенной. Давайте продолжим в любом случае. Из функции matrix()
мы можем видеть, что имеем дело с квадратной матрицей, но давайте даже не будем предполагать это. В функции sparse_matrix()
мы можем определить строки и столбцы, выполнив:
rows = len(sparse_matrix)
columns = len(sparse_matrix[0])
Наряду с проверкой, что rows
не ноль.
Как показать разреженную матрицу на черепахе?
Ваша sparse_matrix()
функция не использует turtle_object
надлежащим образом - мы не хотим ее хранить, мы хотим попросить ее рисовать вещи. И эта функция, вероятно, не должна ничего возвращать. Я думаю, это должно выглядеть примерно так:
def showMatrix(turtle_object, sparse_matrix):
rows = len(sparse_matrix)
if rows == 0:
return
columns = len(sparse_matrix[0])
turtle_object.penup()
for r in range(rows):
for c in range(columns):
if sparse_matrix[r][c] != 0:
turtle_object.goto(c, r)
turtle_object.dot(dot_size, "red")
Где dot_size
сейчас равно 1. Завернуть это в код черепахи:
from turtle import Screen, Turtle
# ...
m = 6
screen = Screen()
dot_size = 1
yertle = Turtle(visible=False)
mat = matrix(order(m), 0)
sparse_matrix(mat, order(m / 2), 1)
showMatrix(yertle, mat)
screen.mainloop()
Получаем неудовлетворительный график:
Поскольку все слишком мало и его нужно увеличить.
Я не уверен, как использовать screen.setworldcoordinates ()
Вместо того, чтобы добавлять коэффициент масштабирования непосредственно к нашему графическому коду, мы можем использовать собственную setworldcoordinates()
черепахи, чтобы согнуть окно до пределов нашего графика:
screen.setworldcoordinates(0, 0, order(m), order(m))
dot_size = screen.window_width() / order(m)
Это дает нам что-то более визуально удовлетворяющее:
Надеюсь, этот грубый набросок заставит вас двигаться в правильном направлении.