Skip to content

Python and OpenGL implementation of vector, linear transformation, and quaternion algebra in the creation and manipulation of Bézier curves for 3D computer graphics

Notifications You must be signed in to change notification settings

nayakazna/BezierCurve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

This repository hosts the source code of my paper, "Implementation of Vector, Linear Transformation, and Quaternion Algebra in the Creation and Manipulation of Bézier Curves for 3D Computer Graphics," that I made for an assignment in the IF2123 Linear and Geometry Algebra class I took in late 2024, including the $\LaTeX$ code for the paper.

For this assignment, we were tasked to create a scientific paper regarding the topics discussed in the class. I chose vectors, linear transformations, and quaternions. Please do not expect much from me as I am just a beginner. I am, by any means, not a professional researcher in this field.

In this paper, I demonstrated how to create a Bézier curve from vectors (i.e. its control points) and to manipulate them using linear transformation for dilation and shear, and using quaternion for rotation. I used OpenGL (with GLGF) in Python to create imageries of Bézier curves.

Installation

Navigate using cd to the directory of this repository and install the required packages using pip:

pip install requirements.txt

Next, you can run main.py in the folder src. Have fun! :D

Usage

  • You can adjust the control points' position for the Bézier curve through the Control Points window.

  • You can apply the following transformations to the the Bézier curve:

    • Reflection
    • Dilation
    • Rotation
    • Translation
    • Shear by clicking the corresponding buttons in the Transformation window.
  • You can move the camera using the following keys:

    • W to move forward
    • A to move left
    • S to move backward
    • D to move right
    • Q to move up
    • E to move down

Best Regards

I believe you can do better!

Best regards,
Z. Nayaka Athadiansyah

About

Python and OpenGL implementation of vector, linear transformation, and quaternion algebra in the creation and manipulation of Bézier curves for 3D computer graphics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages