←back to thread

70 points shivajikobardan | 1 comments | | HN request time: 0s | source

parametric cubic curve

boundary representation

blending function

spline

b-spline

cubic bezier curve

de casteljau algorithm

I have been diving into these topics since few days and I have not understood anything. I tried peter shirley's textbook on Computer Graphics. Foley et al, Hearn baker etc...

It is clear to me that I lack the mathematics preriquisites for understanding this. Thus, I am deeply asking for resources that I can do to brush up. Me being a computer engineering graduate I have done math classes, it is just that I became like a calculator instead of understanding the logic behind doing the formulas and steps so need a short revision.

Show context
RossBencina ◴[] No.45062431[source]
For geometry, start with high-school algebra and coordinate geometry, and learn how to put the two together: equations representing geometry. By which I mean, being able to write down equations for geometric objects and manipulate the equations to get them into different useful forms, and to compute useful things. A first example would be studying different ways of writing down equations for the line [1], and then learn how each of the forms relate, how to use algebra to move between them, and what each for is useful for. For example finding the intersection of two lines involves simultaneously solving for (x,y) that satisfy both equations, and there's a particular form that is best suited to that. Another form is better if you want to "move along a line" say, parameterised by time. One form might be best for GPU rendering. Once you're comfortable with algebraic expressions for lines, then you can move on to the more complex curves that you listed -- the equations for these curves can be manipulated in analogous ways. EDIT: importantly you want to learn not how to "plug and chug" numbers, but instead how to use these equations in code: e.g. how would you use the equations to write code to draw a line/curve, and how to derive functions to intersect curves, connect curves at tangents, etc.

There's more to it than that of course. For example working out equations for tangents to curves will become important. But start with the above. You mention de casteljau algorithm, I am not familiar with that, but it looks like it might be heading more into algebra, in particular manipulating polynomials, which you learn to write down in high-school, study more in pre-calculus and calculus, but can get pretty complicated, for example if you want to solve a quintic equation.

Two elementary books:

McDougal, Little, "Geometry for Enjoyment and Challenge"

Joseph H. Kindle, "Theory and Problems of Plane and Solid Analytic Geometry (Shaum's outline)"

The following are approachable, but don't directly address your interest in curves:

Joseph O'Rourke, "Computational Geometry in C," second edition (basics everyone should know, starts with primitives like knowing the best way to compute the intersection of two line segments.

Christer Ericson, "Real-time collision detection" (a bit more specific, but a fantastic book, recommended to me here on HN in the past)

And of course I must reference Inigo Quilez' [2] "SDF of a ..." videos which give an illuminating perspective on using equations to describe geometry[3].

[1] https://math.libretexts.org/Bookshelves/Applied_Mathematics/...

[2] https://iquilezles.org/

[3] SDF of a Line https://www.youtube.com/watch?v=PMltMdi1Wzg

EDIT: some of the IRC servers have #math channels, and some of those are open to drop ins asking questions like yours (others seem to be full of people studying for exams).

replies(1): >>45064440 #
1. high_byte ◴[] No.45064440[source]
+1 for IQ!