Book Image

Tkinter GUI Application Development Blueprints - Second Edition

By : Bhaskar Chaudhary
Book Image

Tkinter GUI Application Development Blueprints - Second Edition

By: Bhaskar Chaudhary

Overview of this book

Tkinter is the built-in GUI package that comes with standard Python distributions. It is a cross-platform package, which means you build once and deploy everywhere. It is simple to use and intuitive in nature, making it suitable for programmers and non-programmers alike. This book will help you master the art of GUI programming. It delivers the bigger picture of GUI programming by building real-world, productive, and fun applications such as a text editor, drum machine, game of chess, audio player, drawing application, piano tutor, chat application, screen saver, port scanner, and much more. In every project, you will build on the skills acquired in the previous project and gain more expertise. You will learn to write multithreaded programs, network programs, database-driven programs, asyncio based programming and more. You will also get to know the modern best practices involved in writing GUI apps. With its rich source of sample code, you can build upon the knowledge gained with this book and use it in your own projects in the discipline of your choice.
Table of Contents (12 chapters)

Spring pendulum simulation

A lot of real-world phenomena can be called dynamical systems. The state of such systems varies with time. Modeling such systems requires the use of differential equations. We will take here an example of modeling a pendulum attached to a spring, as shown in the following image. The pendulum swings to and fro. Furthermore, since the bob is attached to a spring, the bob also oscillates up and down:

We study the evolution of two variables over time:

  • Length l of the spring
  • Angle (θ) between the spring and the center line, as shown in the preceding diagram.

Since there are two variables changing over time, the state of our system at any time can be represented by using four state variables:

  • Spring length (l)
  • Change in spring length (dl/dt), which is velocity
  • Angle (θ)
  • Change in angle (dθ/dt), which is the angular velocity

They are...