|
| 1 | +|ScreenShot| |
| 2 | + |
| 3 | +pyGameMath |Build Status| |Code Health| |Codacy Badge| |
| 4 | +====================================================== |
| 5 | + |
| 6 | +| This is a math library written in python for 2D/3D game development |
| 7 | + which is also compatible with pypy. I made it while I was learning |
| 8 | + more about the math used in graphics development and for personal use |
| 9 | + in OpenGL related projects. |
| 10 | +| It’s still a work in progress. However, it will be finished soon. |
| 11 | +
|
| 12 | +Update 1: |
| 13 | +''''''''' |
| 14 | + |
| 15 | +- The old version which is fully OOP is inside the folder “oop math |
| 16 | + lib”, some bugs are still present. |
| 17 | +- The new version has most of the features functional based for |
| 18 | + performance, it is inside the folder “src” and all the bugs from the |
| 19 | + previous have been nuked. |
| 20 | +- There is a new folder called “experimental” inside the “src” that |
| 21 | + stores the features that are unfinished. |
| 22 | +- Spherical harmonics were moved under “experimental”. |
| 23 | + |
| 24 | +Update 2: |
| 25 | +''''''''' |
| 26 | + |
| 27 | +- Updated the matrix and vector, fixed a lot of bugs, still dynamic |
| 28 | + class that allows Nth dimensions |
| 29 | +- A lot of the specific 2D, 3D, 4D functions are outside the dynamic |
| 30 | + class |
| 31 | +- Now it allows in-place transformations |
| 32 | +- Some math operations do not support Nth dimensions and will return |
| 33 | + exceptions |
| 34 | +- Removed LU decomposition |
| 35 | +- Temporary Removed NxN Matrix Normalization |
| 36 | +- Temporary Removed NxN Matrix Determinant |
| 37 | +- Temporary Removed NxN Matrix Inverse Calculation |
| 38 | +- Quaternion and the rest need to be updated to match the new style. |
| 39 | + |
| 40 | +Supported features: |
| 41 | +~~~~~~~~~~~~~~~~~~~ |
| 42 | + |
| 43 | +NxN Matrices: |
| 44 | +''''''''''''' |
| 45 | + |
| 46 | +- Transpose |
| 47 | +- Scale |
| 48 | +- NxN Matrix Multiplication |
| 49 | +- NxN Matrix \* N Dimensions Vector Multiplication |
| 50 | +- 4x4 Perspective Projection Matrix |
| 51 | +- lookAt 4x4 Matrix |
| 52 | +- Translation (3x3, 4x4) |
| 53 | +- Rotation (2x2, 3x3, 4x4) |
| 54 | +- Shear (2x2, 3x3, 4x4) |
| 55 | +- Project |
| 56 | +- Unproject |
| 57 | + |
| 58 | +N Dimensions Vectors: |
| 59 | +''''''''''''''''''''' |
| 60 | + |
| 61 | +- Dot Product |
| 62 | +- Cross Product (No 7D) |
| 63 | +- Refraction |
| 64 | +- Reflection |
| 65 | +- Invert |
| 66 | +- Normalize |
| 67 | + |
| 68 | +Quaternions: |
| 69 | +'''''''''''' |
| 70 | + |
| 71 | +- Normalize |
| 72 | +- Dot Product |
| 73 | +- Rotation |
| 74 | +- Conjugate |
| 75 | +- Inverse |
| 76 | +- Negate |
| 77 | +- Rotate X, Y, Z |
| 78 | +- Arbitary Axis Rotation |
| 79 | +- To Rotation Matrix (4x4) |
| 80 | +- Cross Product |
| 81 | +- Vector3D, Scalar Multiplication |
| 82 | +- Logarithm |
| 83 | +- Exponential |
| 84 | +- Power |
| 85 | +- Liner Interpolation (LERP) |
| 86 | +- Spherical Interpolation (SLERP) |
| 87 | +- Quaternion Splines (SQUAD) |
| 88 | +- Output |
| 89 | + |
| 90 | +Plane: |
| 91 | +'''''' |
| 92 | + |
| 93 | +- Define using |
| 94 | + |
| 95 | + - 3 Vectors |
| 96 | + - Point and Normal |
| 97 | + - Manual input |
| 98 | + |
| 99 | +- Dot Product |
| 100 | +- Normalize |
| 101 | +- Best fit normal and D value |
| 102 | +- Distance from plane to a point |
| 103 | +- Point location |
| 104 | +- Output |
| 105 | + |
| 106 | +Ray: |
| 107 | +'''' |
| 108 | + |
| 109 | +- Rotate using Matrix |
| 110 | +- Rotate using Quaternions |
| 111 | +- Translate |
| 112 | +- Output |
| 113 | + |
| 114 | +Legendre Polynomial (Experimental): |
| 115 | +''''''''''''''''''''''''''''''''''' |
| 116 | + |
| 117 | +- For spherical harmonics |
| 118 | +- (l - m)PML(x) = x(2l - 1)PML-1(x |
| 119 | + |
| 120 | +.. |ScreenShot| image:: https://raw.github.com/AlexMarinescu/pyGameMath/master/data/pyGameMathLogo.png |
| 121 | +.. |Build Status| image:: https://travis-ci.org/explosiveduck/pyGameMath.svg?branch=master |
| 122 | + :target: https://travis-ci.org/explosiveduck/pyGameMath |
| 123 | +.. |Code Health| image:: https://landscape.io/github/explosiveduck/pyGameMath/master/landscape.svg?style=flat |
| 124 | + :target: https://landscape.io/github/explosiveduck/pyGameMath/master |
| 125 | +.. |Codacy Badge| image:: https://api.codacy.com/project/badge/907e4230379f40a8bedcfc0a9a0ed43c |
| 126 | + :target: https://www.codacy.com |
0 commit comments