Skip to content
This repository has been archived by the owner on Jul 25, 2019. It is now read-only.

Latest commit

 

History

History
64 lines (49 loc) · 2.44 KB

README.md

File metadata and controls

64 lines (49 loc) · 2.44 KB

may-25

A 3D visualization for Solid of Revolution and Solids with Known Cross-Sections in Calculus.

Features:

Solid of Revolution:

  • Disk method
  • Washer method

Solids with Known Cross-Sections

  • Semicircles
  • Equilidual Triangles
  • Squares

Custom functions, boundaries, and number of solids

How to run it

Go to release page and download binary build (may-25.exe) and run it.

How to debug it

Open May 25.sln with Visual Studio 2017 then build and run/debug it.

Development dependencies

  • Windows SDK 10.0.16299.0
  • VC++ 2017 v141 toolset
  • MFC support (required)

You can adjust Windows SDK version or VC++ version, but you must have MFC support. These components can be installed via Visual Studio Installer.

Supported platforms:

  • Windows 8
  • Windows 8.1
  • Windows 10

How to read the code

All the source code are under "May 25/"

Key function Where it is
entry point wWinMain @ D3D11App.cpp
rendering Render @ D3D11App.cpp
shader hlsl/LightShader.hlsl
handwriting math MathInput.cpp
UI MyWindowsProcs.cpp
geometry building Geometry.cpp
math expression parsing/evaluation EvaluateExpression/tmath.cpp

Screenshots

Coolest picture from development

alt text

Screenshot from latest build

image

Reference books

  • Programming Windows 5th Edition by Charles Petzold
  • Introduction to 3D Game Programming with DirectX 11 by Frank D. Luna

Something I need to say

Most of the code was rushed to write during the last month of my high school. I did not know much about programming and OOP back then and I tried my best to copy and paste craps that I can find over the internet while making sure that the code compiles. If the code blinds your eyes, I am sorry about that.

Many times, I planned to refactor it. But because both style and design of the code is so garbage and it use some old-school API like win32 (Programming Windows 5E was published in 1998), I do not have the gut to refactor it. I plan to rewrite it completly in the future though, probably for Web or UWP.