@@ -99,7 +99,7 @@ addCanvas(
9999 }
100100 }
101101
102- return `Traditional raster images are made up of pixels and have a fixed resolution.` ;
102+ return `Raster formats store pixel information and have a fixed resolution.` ;
103103 } ,
104104 // Smooth circle.
105105 ( ctx , width , height ) => {
@@ -121,9 +121,8 @@ addCanvas(
121121 } ,
122122 ) ;
123123
124- return `Vector formats use math equations to draw the image at any scale. This makes it
125- ideal for artwork that has sharp lines and will be viewed at varying sizes like logos
126- and fonts.` ;
124+ return `Vector formats use formulas to draw the image at any scale. they are ideal fo
125+ artwork with sharp lines that will be viewed at varying sizes.` ;
127126 } ,
128127) ;
129128
@@ -144,9 +143,9 @@ addCanvas(2, (ctx, width, height, animate) => {
144143 drawOpen ( ctx , start , end , true ) ;
145144 } ) ;
146145
147- return `A common way to define these vector shapes is using Bezier curves. The cubic bezier
148- below is made up of four coordinates: the start/end points and the corresponding "handles".
149- These handles can be thought of as defining the direction and momentum of the line.` ;
146+ return `Vector graphics are commonly defined using Bezier curves. The cubic bezier is made up of
147+ four coordinates: the start/end points and their corresponding "handles". These handles can
148+ be thought of as defining the direction and momentum of the line.` ;
150149} ) ;
151150
152151addCanvas ( 2 , ( ctx , width , height , animate ) => {
@@ -195,8 +194,8 @@ addCanvas(2, (ctx, width, height, animate) => {
195194
196195 return `The curve can be drawn geometrically by recursively splitting points by a percentage
197196 until there is only one point remaining. Note there is no constant relationship between the
198- percentage that "drew" the point and the arc lengths before/after it. Uniform motion is
199- can be approximated instead.` ;
197+ percentage that "drew" the point and the arc lengths before/after it. Uniform motion must be
198+ approximated instead.` ;
200199} ) ;
201200
202201addTitle ( 4 , "How are blobs made?" ) ;
@@ -226,7 +225,7 @@ addCanvas(
226225
227226 drawClosed ( ctx , shape , false ) ;
228227
229- return `Points are evenly rotated around the center.` ;
228+ return `Initial points are rotated evenly around the center.` ;
230229 } ,
231230 ( ctx , width , height , animate ) => {
232231 const period = Math . PI * 1000 ;
@@ -268,7 +267,7 @@ addCanvas(
268267 drawClosed ( ctx , shiftedShape , true ) ;
269268 } ) ;
270269
271- return `Each point is randomly moved towards, or away from the center.` ;
270+ return `Each point is randomly moved towards or away from the center.` ;
272271 } ,
273272) ;
274273
@@ -302,7 +301,7 @@ addCanvas(
302301
303302 drawClosed ( ctx , polyBlob , false ) ;
304303
305- return `The points have handles, but they have no length and an incorrect angle.` ;
304+ return `In this state, the points have handles with zero length and angle.` ;
306305 } ,
307306 ( ctx , width , height , animate ) => {
308307 const period = Math . PI * 1000 ;
@@ -344,7 +343,7 @@ addCanvas(
344343 drawClosed ( ctx , animatedBlob , true ) ;
345344 } ) ;
346345
347- return `The shape is smoothed by making handles parallel to the line between the points
346+ return `The blob is smoothed by making handles parallel to the line between the points
348347 immediately before and after. The length of the handles is a function of the distance to
349348 the nearest neighbor.` ;
350349 } ,
@@ -415,10 +414,9 @@ addCanvas(2, (ctx, width, height, animate) => {
415414 } ) ;
416415
417416 // TODO have content about why being able to interrupt transitions with another.
418- return `Interpolating between two blobs requires transforming the x,y coordinates of each point
419- as well as its handles. However this has two important prerequisites. First, both blobs must
420- have the same number of points. Second, the points must be matched with their nearest
421- counterpart in the target shape.` ;
417+ return `Interpolation requires points to be paired up from shape A to B. This means both blobs
418+ must have the same number of points and that the points should be matched in a way that
419+ minimizes movement.` ;
422420} ) ;
423421
424422addCanvas (
@@ -472,9 +470,9 @@ addCanvas(
472470 ) ;
473471 } ) ;
474472
475- return `The order of points cannot be changed without resulting in a different shape.
476- However, a likely enough optimal order can be selected by shifting the points and
477- comparing the point position deltas.` ;
473+ return `Points cannot be swapped without resulting in a different shape. However, a likely
474+ enough optimal order can be selected by shifting the points and comparing the point
475+ position deltas.` ;
478476 } ,
479477 ( ctx , width , height , animate ) => {
480478 const period = Math . PI * Math . E * 1000 ;
@@ -557,9 +555,9 @@ addCanvas(
557555 } ) ;
558556 } ) ;
559557
560- return `Points are added to the shape with the least until the shapes match . These new
561- points are as evenly distributed as possible. It is very rare to be able to remove
562- points from a shape without changing it.` ;
558+ return `Points are added until they both have the same count . These new points should be as
559+ evenly distributed as possible. It is almost never possible to be able to remove points
560+ from a shape without changing it.` ;
563561 } ,
564562 ( ctx , width , height , animate ) => {
565563 const period = Math . PI ** Math . E * 1000 ;
@@ -622,7 +620,7 @@ addCanvas(
622620 ) ;
623621 } ) ;
624622
625- return `Curve splitting uses the innermost line from the above curve drawing demo and makes
626- either side of the final point the handles.` ;
623+ return `Curve splitting uses the innermost line from the cubic bezier curve drawing demo and
624+ makes either side of the final point the handles.` ;
627625 } ,
628626) ;
0 commit comments