Giter VIP home page Giter VIP logo

wykobi's Introduction

Description

Wykobi is an efficient, robust and simple to use multi-platform 2D/3D computational geometry library. Wykobi provides a concise, predictable, and deterministic interface for geometric primitives and complex geometric routines implemented in C++.

The design and structure of Wykobi lends itself to easy and seamless integration into projects of any scale that require a robust yet efficient 2D/3D computational geometry back-end.

Compatible C++ Compilers

  • GNU Compiler Collection (3.1+)
  • Intel® C++ Compiler (8.x+)
  • Clang/LLVM (1.1+)
  • PGI C++ (10.x+)
  • Microsoft Visual Studio C++ Compiler (7.1+)
  • IBM XL C/C++ (9.x+)
  • C++ Builder (XE4+)

Download

http://www.wykobi.com

Documentation And Tutorial

http://www.wykobi.com/tutorial.html

License

The Wykobi computational geometry library and all its components are supplied under the terms of the MIT License. The contents of the Wykobi library and its components may not be copied or disclosed except in accordance with the terms of the MIT License.

General Features

  • Pairwise intersections in 2D/3D between - Rays, Segments, Lines, Planes, Triangles, Quadii, Circles, Spheres, Rectangles, Boxes, Polygons, Cubic and Quadratic beziers
  • Point inclusion test - Triangle, Rectangle, Circle, Quadix, Sphere and Convex\Concave Polygon region, In Circle and In Sphere
  • Closest point from a point on - Segment, Line, Triangle, Quadix, Circle, Sphere and AABB
  • Closest point on a circle/sphere from a 2D/3D segment or line
  • Mirroring 2D/3D (reflection) about an axis or plane - Point, Segment, Line, Triangle, Quadix, circle, Sphere, Polygon
  • Nonsymmetric mirroring 2D/3D (reflection) about an axis or plane - Point, Segment, Line, Triangle, Quadix, Circle, Sphere, Polygon
  • Euclidean, Ley, Manhattan, Chebyshev and inverse Chebyshev pairwise distance - Rays, Segments, Lines, Planes, Triangles, Quadii, Circles, Spheres, Rectangles, Boxes, Cubic and Quadratic beziers
  • Minkowski pairwise sum and differences between - Rays, Segments, Triangles, Quadii, Circles, Spheres, Rectangles, Boxes and Polygons
  • Clipping of segments against - Rectangles, Triangles, Quadii, Boxes and Circles
  • Area Calculation - Triangle, Quadix, Rectangle, Circle and Polygon
  • Perimeter Calculation - Triangle, Quadix, Rectangle, Circle and Polygon
  • Generate random points within - AABB, Triangle, Quadix, Circle, Pentagon, Hexagon, Heptagon and Octagon
  • Projection along linear path - Point, Segment, Triangle, Quadix, Circle, Sphere and Polygon
  • Axis aligned bounding boxes - Segments, Triangles, Quadii, Circles, Sphere and polygons
  • Centering of 2D geometric primitives at a specified location
  • 2D/3D Vector addition, subtraction, normalization, magnitude, dot product, cross product calculation
  • 2D/3D Rotations, fast rotations, translations, scaling and shear
  • Point of reflection
  • Quadratic and Cubic Bezier curve creation (2D/3D)
  • Quadratic and Cubic Bezier curve length calculation
  • Polygon approximation of supported geometrical objects
  • Conversions between Cartesian and Barycentric coordiante systems
  • Orientation, Collinear, Coplanar Perpendicular and Parallel primitives
  • Vertex and relative Cartesian angle calculation

Algorithms

  • Convex Hull - Graham scan, Jarvis march, Melkman
  • Minimum Bounding Ball - Randomized, Ritter and naive
  • Polygon Clipping - Sutherland Hodgman, Polygon reordering
  • Polygon Triangulation - Ear Clipping Algorithm For Simple Polygons
  • Statistical - Isotropic normalization, Covariance matrix, Eigen values and vectors
  • Group Intersections - Naive pairwise intersections

Special triangles, Circles and Centers

  • Anticevian triangle
  • Anticomplementary triangle
  • Antipedal triangle
  • Antipodal points
  • Cevian triangle
  • Circle tangent points
  • Circum-center
  • Circum-circle
  • Confined triangle median
  • Contact triangle
  • Cyclocevian conjugate
  • Equilateral triangle
  • Euler Line
  • Excentral triangle
  • Exmedian point
  • External triangle bisector
  • Extouch triangle
  • Feuerbach point and triangle
  • Incentral triangle
  • Incenter
  • Inscribed circle
  • Inner and outer napoleon triangles
  • Inner and outer vecten triangles
  • Inverse Point
  • Inverse Circle and Sphere
  • Isogonal conjugate
  • Isosceles triangle
  • Medial triangle
  • Morley triangle
  • Orthocenter
  • Orthic triangle
  • Pedal trianglepoint
  • Perspectrix between 2D/3D triangles
  • Symmedial triangle
  • Symmedian point
  • Torricelli point
  • Trilateration
  • Triangle median
  • Triangle symmedian
  • and plenty more...

wykobi's People

Contributors

arashpartow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.