Giter Site home page Giter Site logo

Simon Hartley's Projects

bicubicbspline icon bicubicbspline

The aim of this assessment was to produce a program to generate and display cubic and bicubic B-splines to represent curves and surfaces respectively. All three parts of the assessment have been completed successfully. The amount of replicated code in the program could be substantially reduced by adding polymorphism to the curve and surface classes.

cubicspline icon cubicspline

The aim of this assessment was to produce a program to generate and display cubic splines. The program was tested by fitting a cubic spline to a cubic function, and comparing the results of the cubic spline with those of the cubic function. The program’s user interface allows data points to be inserted, deleted and moved. Data points can be read from and written to text files, and several pre-defined curves are provided. Cubic splines of one, two or three functions can be displayed. Cubic splines of more than one function are displayed both independently, and as curves in a two or three dimensional coordinate system. Three dimensional curves can be rotated and projected.

hpc-intro icon hpc-intro

Lesson materials for an Introduction to High Performance Computing in the tradition of Software Carpentry

mathematicslibrary icon mathematicslibrary

The aim of this assessment was to create a set of classes that would form the basis of a mathematics library to be used in the ray caster and ray tracer assessments. The design was to be object-oriented and the program was to be written in C++. The code was to be efficient, well structured, commented and maintainable. The design was to include a Vector class to encapsulate the behaviour of a three-dimensional point or vector, and a Ray class to encapsulate the behaviour of an infinite three-dimensional line or ray. Both classes were to provide constructors, selectors, input and output streaming, and various mathematical operators and functions. The Vector class was to include mathematical operators and functions for addition, subtraction, scalar multiplication, negation, cross product, dot product, magnitude, normalise, and the distance between two points. The Ray class was to include the mathematical operators and functions for negation, the distance between a point and a line, the distance between two lines, and the intersection between two rays. This intersection could also be used to construct a Vector object. If possible, the design was to include a Matrix class to encapsulate the behaviour of a three-dimensional transformation, which could be applied to either a Vector or Ray object.

maze icon maze

The aim of this assessment was to produce a program to walk through and render a three dimensional maze in real time. The program was to be written in C or C++ using the OpenGL library. The pattern of the maze was to be defined by a text file, and movement through the maze, using the cursor keys, was to obey collision detection rules. Spinning objects were to be placed in the maze, and the scene was to be rendered using perspective projection, lighting and smooth shading. All the required features have been implemented. Aerial, player, inset and cross-eyed stereo views, opening and closing solid walls, objects for collection, textures, sounds, monsters, and movement using the mouse, have been added as extra features.

polyhedron icon polyhedron

The aim of this assessment was to produce a matrix to represent rotation about an axis specified by two spherical polar angles, and to write a program to read, transform, light, project and render a set of polyhedrons, as specified in a data file. All the required features have been implemented, and the following extra features have been added. Multiple cameras, lights and polyhedrons can be read from the data file. The cameras can be moved interactively using the mouse and keyboard. The lights can be point or directional sources, with ambient, diffuse, and specular components. The polyhedrons have material properties with ambient, diffuse, specular and emissive components. Each polyhedron can have axes attached to it to show its local co-ordinate system. The polyhedrons can be rendered as solids or wire-frames. The rendered scene can be saved to a bitmap file.

ptcloudproc icon ptcloudproc

he algorithm decomposes the point cloud into a concise, hybrid structure of inherent shapes and a set of remaining points. Each detected shape serves as a proxy for a set of corresponding points. Our method is based on random sampling and detects planes, spheres, cylinders, cones and tori. For models with surfaces composed of these basic shapes only, for example, CAD models, we automatically obtain a representation solely consisting of shape proxies.

raytracercsg icon raytracercsg

The aim of this assessment was to create a set of classes that would form the basis of a ray tracer using the Mathmatical library Created in other assessments. The design was to be object-oriented and the program was to be written in C++. The code was to be efficient, well structured, commented and maintainable.

shufflepuck icon shufflepuck

The aim of this assessment was to develop a virtual environment for the game of ShufflePuck using physically based modelling techniques. The program has been written in C++ using the OpenGL and GLUT libraries. All of the compulsory components and the extensions have been implemented. The program can maintain a frame rate of between 40 fps and 70 fps at a resolution of 800 x 400 pixels on a Pentium III 750MHz system, with a GeForce2 graphics processor.

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.