Графика в Python. Анимация. Передвижение объектов.

Поділитися
Вставка
  • Опубліковано 27 гру 2024

КОМЕНТАРІ •

  • @wartaur_7943
    @wartaur_7943 2 роки тому +1

    Добрый день! А как сделать движение объекта по кругу?

    • @AleksejBelkin
      @AleksejBelkin  2 роки тому +1

      Я на Pascal разбирал: ua-cam.com/video/dw-CHGUQdpo/v-deo.html . Посмотрите, если не понятно будет как на Python реализовать - то запишу новое видео

  • @Qwerty-ph9gu
    @Qwerty-ph9gu 2 роки тому

    Здравствуйте. А как сделать вместо геометрической фигуры несколько двигающихся png картинок?

    • @AleksejBelkin
      @AleksejBelkin  2 роки тому

      Здравствуйте, вот можете посмотреть код:
      github.com/belkinaa/tkinter_animation/tree/main/UA-cam

  • @darkhack7966
    @darkhack7966 3 роки тому +1

    спасибо !!!

  • @ДарьяХристенко-щ6м

    Добрый день, можно ли сделать движение круга не по определенной траектории, а случайным, если да, то как?

    • @AleksejBelkin
      @AleksejBelkin  2 роки тому

      Можно, просто получится не движение, а появление в случайном месте, если генерировать координаты X и Y через генератор псевдослучайных чисел. Либо сгенерировав новую точку, и не генерировать следующую, пока круг не дойдет до нее, двигаясь с заданным шагом.

  • @bogdi77
    @bogdi77 3 роки тому

    Приветствую вас! Подскажите, пожалуйста, если на экране нарисовать 6 кругов, и один из них будет другого цвета чем остальные. Как можно сделать перемещение закрашенного кружка по всем остальным кругам? типа эффект вращающегося барабана револьвера.

    • @AleksejBelkin
      @AleksejBelkin  3 роки тому +1

      изменение координаты X и Y по окружности. Формула у меня есть на паскале, но ее можно и на питон перевести. Если возникнуть проблем, то пишите - помогу: ua-cam.com/video/dw-CHGUQdpo/v-deo.html

    • @bogdi77
      @bogdi77 3 роки тому

      @@AleksejBelkin , Большое спасибо за ответ и за ссылку на видео! Заранее прошу прощения, если в моём вопросе прозвучит ересь, но я только начинаю учиться :-) Если я в tkinter нарисую 6 кругов, как-будто это отверстия барабана, то у меня будет 6 объектов. Может мне поставить цикл рандомный с задержкой времени, в котором у этих объектов будет меняться заливка по очереди? Только вот как эти круги итерировать? Можно ли их спрятать в какой нибудь список?

    • @AleksejBelkin
      @AleksejBelkin  3 роки тому

      @@bogdi77 рисуйте объекты через pack - тогда получатся слои, которые можно двигать. Попробуйте что получится, потом кинете ссылку на проект я посмотрю и помогу если потребуется.

    • @bogdi77
      @bogdi77 3 роки тому

      @@AleksejBelkin я написал вам в вконтакте сообщение.

  • @MrNichosik
    @MrNichosik 3 роки тому

    как сделать такой же эффект курсора?

    • @AleksejBelkin
      @AleksejBelkin  3 роки тому

      это эффект из программы записи. "Отслеживание курсора"

  • @maxsmal2199
    @maxsmal2199 3 роки тому

    здравствуй, а как можно сделать, чтоб при нажатии ПКМ на окно из точки нажатия как салют вылетали частицы либо какие-то фигуры?

    • @AleksejBelkin
      @AleksejBelkin  3 роки тому

      Если тебя правильно понял то примерно так для левой клавиши. Думаю для правой сможешь сам сфантазировать))):
      -------
      import random
      import time
      from tkinter import *
      root = Tk()
      mx = 1000
      my = 600
      c = Canvas(root, width=mx, height=my)
      c.pack()
      cp = 5
      sl = 0.0005
      color = "#{:06x}".format(random.randint(0, 256 ** 3))
      ball = c.create_oval(0, 0, 100, 100, fill=color, outline = color)
      def b1(event):
      x = event.x
      y = event.y
      lst = []
      for i in range(10):
      j = random.randint(-100, 100)
      color = "#{:06x}".format(random.randint(0, 256 ** 3))
      if i % 2 == 0:
      lst.append(c.create_oval(x+j, y+j, (x+10)+j, (y+10)+j, fill=color, outline=color))
      else:
      lst.append(c.create_oval(x + j, y - j, (x + 10) + j, (y + 10)-j, fill=color, outline=color))
      while True:
      root.bind('', b1)
      for i in range((mx - 100) // cp):
      c.move(ball, cp, 0)
      root.update()
      time.sleep(sl)
      for i in range((my - 100) // cp):
      c.move(ball, 0, cp)
      root.update()
      time.sleep(sl)
      for i in range((mx - 100) // cp):
      c.move(ball, -cp, 0)
      root.update()
      time.sleep(sl)
      for i in range((my - 100) // cp):
      c.move(ball, 0, -cp)
      root.update()
      time.sleep(sl)
      root.mainloop()

  • @Goboz1
    @Goboz1 2 роки тому

    Здравствуйте, а как убрать ошибку invalid command name ".!canvas"
    Я видел она у вас тоже есть

    • @AleksejBelkin
      @AleksejBelkin  2 роки тому +1

      Эта ошибка из-за прерывания работы алгоритма после закрытия окна. Ничего страшного нет в этом.

    • @Goboz1
      @Goboz1 2 роки тому +1

      @@AleksejBelkin спасибо огромное

  • @rusbeltru4789
    @rusbeltru4789 3 роки тому

    А почему у меня пишет name mix is not defined

    • @AleksejBelkin
      @AleksejBelkin  3 роки тому

      Может, mx? Если так, то Вы не объявили в глобальных переменных переменную. В самом начале напишите: mx = 1000

  • @mrdoom3249
    @mrdoom3249 3 роки тому

    это PyCharm?