টিকিন্টার (Tkinter) - Canvas এর মাধ্যমে অ্যানিমেশন তৈরি
Tkinter হল পাইটনের জন্য একটি জনপ্রিয় GUI টুলকিট, যা সহজেই গ্রাফিক্যাল ইউজার ইন্টারফেস তৈরি করতে সাহায্য করে। Tkinter-এর Canvas উইজেটটি ব্যবহার করে আপনি গ্রাফিক্স, চিত্র, আকার এবং অ্যানিমেশন তৈরি করতে পারেন। অ্যানিমেশন তৈরি করতে, আপনি Canvas-এ বিভিন্ন উপাদান আঁকতে পারেন এবং সেগুলোর অবস্থান বা বৈশিষ্ট্য পরিবর্তন করে তা অ্যানিমেশন হিসেবে দেখাতে পারেন।
এখানে Tkinter Canvas উইজেটের মাধ্যমে অ্যানিমেশন তৈরি করার ধারণা এবং উদাহরণ দেওয়া হলো।
১. Tkinter Canvas এবং অ্যানিমেশন
Tkinter-এ অ্যানিমেশন তৈরি করার জন্য আপনি Canvas উইজেট ব্যবহার করেন এবং পরে move বা coords কমান্ডের মাধ্যমে উপাদানগুলি স্থানান্তরিত করেন। এছাড়া, after কমান্ডটি ব্যবহার করে আপনি নির্দিষ্ট সময় পর পর কোড চালাতে পারেন, যা অ্যানিমেশনকে সামঞ্জস্যপূর্ণ করে তোলে।
২. Tkinter Canvas উইজেট তৈরি এবং ব্যবহার
Tkinter-এ Canvas উইজেটটি প্রথমে তৈরি করতে হবে, এবং পরে সেটিতে উপাদানগুলি আঁকা হবে, যেমন বৃত্ত, আয়তক্ষেত্র, রেখা ইত্যাদি।
৩. অ্যানিমেশন তৈরি করার উদাহরণ
এখানে একটি উদাহরণ দেওয়া হলো, যেখানে একটি বৃত্তকে Tkinter Canvas উইজেটে সোজা ডান দিকে সরানোর অ্যানিমেশন তৈরি করা হয়েছে।
import tkinter as tk
# উইন্ডো তৈরি
window = tk.Tk()
window.title("Animation Example")
# Canvas উইজেট তৈরি
canvas = tk.Canvas(window, width=400, height=400, bg="white")
canvas.pack()
# বৃত্ত তৈরি
circle = canvas.create_oval(10, 10, 60, 60, fill="blue")
# অ্যানিমেশন ফাংশন: বৃত্তটি ডানে সরানোর ফাংশন
def move_circle():
# বৃত্তের বর্তমান অবস্থান পাওয়া
canvas.move(circle, 5, 0) # বৃত্তকে ৫ পিক্সেল ডানে সরানো
# 50 মিলিসেকেন্ড পর move_circle আবার চলবে
window.after(50, move_circle)
# অ্যানিমেশন শুরু করা
move_circle()
# উইন্ডো চালু রাখা
window.mainloop()৪. কোডের ব্যাখ্যা
create_oval: এটি একটি বৃত্ত (অথবা এলিপ্স) তৈরি করে, যেখানে প্রথম দুটি প্যারামিটার (10, 10) বৃত্তের উপরের বাম কোণ এবং পরবর্তী দুটি প্যারামিটার (60, 60) বৃত্তের নিচের ডান কোণ। বৃত্তের রঙfill="blue"দ্বারা সেট করা হয়েছে।move:moveকমান্ডটি ব্যবহার করে বৃত্তটির অবস্থান পরিবর্তন করা হয়েছে। এটি বৃত্তটিকে ৫ পিক্সেল ডানে সরিয়ে দিয়েছে।after:afterকমান্ডটি ব্যবহার করে ৫০ মিলিসেকেন্ড পর পরmove_circleফাংশনটি পুনরায় চালানো হয়, যার ফলে বৃত্তটি ক্রমাগত ডানে চলে যায়।
৫. অ্যানিমেশন পরবর্তী পদ্ধতি এবং উন্নতি
আপনি অ্যানিমেশন তৈরি করতে গিয়ে অন্যান্য গ্রাফিক্যাল উপাদানও ব্যবহার করতে পারেন, যেমন আয়তক্ষেত্র, রেখা, ইমেজ, ইত্যাদি। এছাড়া, অ্যানিমেশনটি আরও পরিস্কার এবং জটিল করতে coords কমান্ডও ব্যবহার করতে পারেন, যা বস্তুর অবস্থান পরিবর্তন করতে সহায়ক।
উদাহরণ: কয়েকটি গ্রাফিক্যাল উপাদান নিয়ে অ্যানিমেশন তৈরি
import tkinter as tk
# উইন্ডো তৈরি
window = tk.Tk()
window.title("Complex Animation Example")
# Canvas উইজেট তৈরি
canvas = tk.Canvas(window, width=400, height=400, bg="white")
canvas.pack()
# বিভিন্ন উপাদান তৈরি
circle = canvas.create_oval(50, 50, 100, 100, fill="blue")
rectangle = canvas.create_rectangle(150, 150, 250, 250, fill="red")
# অ্যানিমেশন ফাংশন
def move_shapes():
# বৃত্ত এবং আয়তক্ষেত্র স্থানান্তর
canvas.move(circle, 5, 0) # বৃত্তটি ৫ পিক্সেল ডানে যাবে
canvas.move(rectangle, 0, 5) # আয়তক্ষেত্রটি ৫ পিক্সেল নিচে যাবে
# 50 মিলিসেকেন্ড পর move_shapes পুনরায় চলবে
window.after(50, move_shapes)
# অ্যানিমেশন শুরু
move_shapes()
# উইন্ডো চালু রাখা
window.mainloop()এখানে:
create_rectangle: আয়তক্ষেত্র তৈরি করেছে।move: বৃত্ত ও আয়তক্ষেত্রের স্থানান্তর (বৃত্ত ডানে এবং আয়তক্ষেত্র নিচে) করতে ব্যবহৃত হয়েছে।after: এটি অ্যানিমেশনকে সঠিক সময় পরে পুনরায় চালু করার জন্য ব্যবহৃত হয়েছে।
৬. অ্যানিমেশন নিয়ন্ত্রণ এবং আরও জটিলতা
Tkinter-এ অ্যানিমেশন আরও নিয়ন্ত্রণযোগ্য এবং জটিল করতে পারেন। আপনি নিচের পদ্ধতিগুলি ব্যবহার করতে পারেন:
after_cancel: অ্যানিমেশন স্থগিত বা বন্ধ করার জন্য ব্যবহার করা যায়।tag_bind: Canvas উপাদানগুলির সাথে ইভেন্ট যুক্ত করা যায় (যেমন ক্লিক করলে অ্যানিমেশন শুরু হবে)।itemconfig: Canvas উপাদানের বৈশিষ্ট্য পরিবর্তন করার জন্য।
উদাহরণ: অ্যানিমেশন বন্ধ করা
import tkinter as tk
# উইন্ডো তৈরি
window = tk.Tk()
window.title("Stop Animation Example")
# Canvas উইজেট তৈরি
canvas = tk.Canvas(window, width=400, height=400, bg="white")
canvas.pack()
# বৃত্ত তৈরি
circle = canvas.create_oval(50, 50, 100, 100, fill="blue")
# চলমান অ্যানিমেশন ফাংশন
def move_circle():
canvas.move(circle, 5, 0)
window.after(50, move_circle)
# অ্যানিমেশন বন্ধ করার ফাংশন
def stop_animation():
window.after_cancel(move_circle)
# অ্যানিমেশন শুরু
move_circle()
# একটি বোতাম তৈরি, যা অ্যানিমেশন বন্ধ করবে
button = tk.Button(window, text="Stop Animation", command=stop_animation)
button.pack()
# উইন্ডো চালু রাখা
window.mainloop()এখানে:
after_cancel: এটি অ্যানিমেশন বন্ধ করতে ব্যবহৃত হয়েছে যখন বোতাম ক্লিক করা হয়।
উপসংহার
Tkinter Canvas উইজেটটি গ্রাফিক্যাল উপাদান এবং অ্যানিমেশন তৈরি করার জন্য একটি শক্তিশালী টুল। আপনি বৃত্ত, আয়তক্ষেত্র, রেখা, এবং অন্যান্য গ্রাফিক্যাল উপাদানগুলি তৈরি করতে এবং move, after সহ অন্যান্য কমান্ড ব্যবহার করে অ্যানিমেশন তৈরি করতে পারেন। Tkinter-এ অ্যানিমেশন এবং ইন্টারঅ্যাকটিভ উপাদান তৈরি করা খুবই সহজ এবং দ্রুত।
Read more