Freya Holmér Profile picture
Mar 28 6 tweets 2 min read
the relationship between C (parametric) and G (geometric) continuity between curves

• C0/G0 are equivalent
• G2 continuity is also G1 and G0 continuous
• C2 continuity is also G2, C1, G1 and G0 continuous
it's a little difficult to wrap your head around, but this is how they relate to the derivatives (top)

notably, G-continuity has no restriction on parametric continuity.

G2 *can* be C1 too, but it only has to be the lesser strict G1

G3 *can* be C2 & C1, but has to be G2 & G1
a general definition of Gn continuity:

the join between two curves A(t) and B(t), is Gn continuous, if a function g(t) exists, so that A(t) and B(g(t)) is Cn continuous
for G1 continuity, the first derivative has matching directions, but not necessarily magnitude

for example, here's a G1 continuous bézier spline. Note how the first derivative is discontinuous (in other words, not C1), but the directions/tangents match
this relationship, however, doesn't generalize to higher G-continuities - it's not as simple as "matching directions but not magnitude" as it is for G1 in particular

this is a G3 continuous join, with the first two derivatives on the right
going live with more work on this video

come hang out~

twitch.tv/acegikmo

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Freya Holmér

Freya Holmér Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @FreyaHolmer

Feb 23
what's a good way to store date+time in an sql database?

assuming I want to support pretty precise events (down to seconds in precision) across a huge timespan (birth of our universe to the heat death of our universe)
I'm toying with the idea of a timeline tool where you can create timelines of, well, events, both historical and fictional

it would be cool if it would support huge astronomical timespans as well as like, detailed breakdown of a single hour in history
so outside of recorded history + however long we will likely live + the range of fictional universes, I don't need very high precision at all
Read 4 tweets
Oct 17, 2021
for the past three years, I've been speaking english every single day, only switching to my native swedish when talking to relatives on the phone, which is probably 0.5% of my uttered words

somehow, I now feel like a stranger to my own native language
I recently met a new friend - we'd never spoken in person before!

once we met we figured we might as well just speak swedish since we both speak it fluently

but, my brain kept wanting to pull in english words, and started structuring sentences as if I was speaking english
the result is a haphazard mostly-swedish but lots of english words and unfinished sentences

like it works, but something feels really off, like I'm emulating someone else, trying to fit a mold that's just ever so slightly off at all times
Read 4 tweets
Oct 17, 2021
"but operator overloading makes your code confusing"

ok bro literally what is this Image
"people can misuse it"

oh no what if people make a "GlorbAllNoots()" function that florps all goobers instead??

looks like we can't have functions either, look at this confusing and hidden implicit behavior!!
I just don't see how:

vec2.add(vec2.mul(a,1-t),vec2.mul(b,t))

or

a.mul(1-t).add(b.mul(t))

is more readable/better than:

a*(t-1)+b*t

doing math heavy projects without operator overloading is an absolute nightmare
Read 4 tweets
Oct 15, 2021
how do you make websites these days?

I'm a Lv1 webdev right now (vanilla html/js/php), but I'm looking to modernize just one step further to Lv2 without getting overwhelmed with the package/API/systems hell of the Lv8 lategame
one of the biggest things I'm missing is some form of html templating

I used to do it w. php but it seems like such a hack, and doing it with js also seems like a hack. you have to like, name containers and use .innerHTML

I feel like there has to be a better way?
I don't even need any advanced dynamic content, I just need some better workflow to share data

the most advanced thing I have is like, embedding interactive p5js stuff, but that's already solved
Read 4 tweets
Oct 4, 2021
the axis-angle representation of 3D rotation

a single 3D vector, where
• its direction v̂ is the axis of rotation
• its magnitude ||v|| is the angle to rotate by
this can represent any 3D rotation, but you'll most commonly see it represent angular velocity, where the magnitude is the angular speed

this is because unlike quaternions, axis-angle can go beyond a full turn, just like a number representing a single angle can
when representing angular velocity this way, you can also easily add angular velocities together through simple vector addition, decompose it, and project it!

which is pretty neat if you ask me
Read 12 tweets
Oct 3, 2021
I feel like so many movies would immediately improve if you removed 80% of dialogue and made it 4 times as long
make me *feel* the character's motivation, and see their struggles and motivations

I'm so allergic to having it told to me over and over through dialogue when it's already clear contextually
and like, it's so hard to have proper pacing and tell a believable story with actual character development, without too much on the nose exposition, in the space of an hour or two
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(