Thanks Jim, More information than I thought I needed to know about stars, but now I'm better informed. Very nice.
-- Tom McGrath III http://lazyriver.on-rev.com 3mcgr...@comcast.net On Jun 22, 2012, at 12:30 PM, Jim Hurley wrote: > As LiveCode announcements go, this one is pretty low key. All "Stars" does is > provide the code for drawing a star. > > But there is a lesson for LiveCode to learn from the lowly five-pointed star, > the one on the US flag. > > A star may be viewed in two ways: > > 1) Analytical Cartesian Geometry: A collection of 10 connected points (5 > outside points, and 5 inside) in a Cartesian coordinate system. > > 2) Euclidian Geometry: A collection of lines and angles without reference to > place or orientation. > > The first is the Cartesian picture where the computation to draw the star is > executed using algebra, trigonometry, and/or analytic geometry. > > The other picture is that of a figure in Euclidean space and the > construction is carried out geometrically, drawing lines with a given angular > relation to one another. > > LiveCode favors the Cartesian picture employing its analytic tools to > generate a list of 10 points and presenting the list as a graphic by setting > the graphic to these points. > > Here is how that code might look using those tools to draw a star in a > Cartesian coordinate system: > >> --FIrst, define the angles and lengths in the figure to be drawn >> put 36 into gamma >> put 18 into alpha >> put 200 into L >> --Next some trig. Not trivial. >> >> --Let r1 be the distance from the center of the star to the inner >> vertices. >> put L*sine(alpha) /sine(gamma) into r1 >> >> --Let r2 be the distance from the center to the outer vertices >> put L*cosine(alpha) + r1 * cosine(gamma) into r2 >> >> --Start at the top of the star at a polar angle of 90 degrees >> put 90 into a >> --Circle around the ten verticies of the star >> --in increments of 360/10 = 36 degree, the polar angle between vertices. >> put 36 into da >> repeat with i = 1 to 10 >> if i mod 2 = 1 then >> put r2* cosine(a) into x >> put r2* sine(a) into y >> put round(x+ x0) into x >> put round(-y+y0) into y >> put x,y & cr after tPoints--outer points >> else >> put r1* cosine(a) into x >> put r1* sine(a) into y >> put round(x+ x0) into x >> put round(-y+y0) into y >> put x,y & cr after tPoints--inner points >> end if >> add da to a -- next vertex >> --If you want to see the star form line by line. >> set the points of grc "Star" to tPoints >> end repeat >> --Close the loop >> put results & line 1 of results into tPoints >> set the points of grc "Star" to tPoints > > > > And here is what the loop might look like if the star were expressed as a > geometrical figure: > >> put 2*360/5 into tAngle -- Pretty simple geometry here. >> put 200 into L >> repeat with i = 1 to 5 >> forward L >> right tAngle --at an exterior point >> forward L >> left tAngle/2 --at an interior point >> end repeat > > > (After LC has been taught how to execute "forward", "right", and "left".) > > There has been talk for some time of promoting LC in education, even in K-12. > Great idea. > > There has also been talk, more broadly, of rejuvenating the teaching of > mathematics --See the TED talk by Conrad Wolfram at: > > > http://www.ted.com/talks/lang/en/conrad_wolfram_teaching_kids_real_math_with_computers.htmlConrad > Wolfram > > (Ken Ray will enjoy the stick figures at the end of the talk.) > > From Wolfram's talk: "I believe that correctly using computers is the silver > bullet for making math education work." He cites particularly the use of the > computer in modeling and simulation. He anticipates scientists (geologist, > biologists, engineers) programing these simulations. > > LiveCode has all the necessary analytical tools for such modeling and > simulation, but it lacks the geometric tools, specifically Sprite Geometry > (aka Turtle Graphics.) > > For some years I have been promoting (spoken to Kevin on several occasions) > the addition of Sprite geometry into LC. I believe it would add significantly > to LC's penetration into the education market. It would allow kids to tackle > problems that are much too difficult using Cartesian analytical tools, but > quite straight forward when presented as problems in geometry--witness the > "Star" above. > > It would also allow them easy access to game programming. The loop to set a > Fox graphic (control) chasing a Rabbit graphic (control) would look like this: > >> repeat until the mouseClick >> tell "hare" >> --Move Hare in a circle. >> forward 2 >> left 1 >> put theLocation() into theHareLocation >> tell "fox" >> setheading direction(theHareLocation) >> forward 1 >> end repeat > > > The Fox and Hare and treated as Sprites and Sprite geometry can talk to any > LC control, a drawing sprite with penDown or not drawing with penUp. > > Many are put off by Turtle Graphics. There is a perception that it is just > for kids. But it goes well beyond simple ways to draw polygons. (See the book > by Professor Harold Ableson of MIT titled: Turtle Geometry: The Computer as a > Medium for Exploring Mathematics (Artificial Intelligence, at Amazon: > http://www.amazon.com/Turtle-Geometry-Mathematics-Artificial-Intelligence/dp/0262510375/ref=sr_1_1?s=books&ie=UTF8&qid=1340373015&sr=1-1&keywords=Turtle+geometry > . ) > > TG is also useful in graphically solving trajectory equations (differential > equations) for the path of a projectile, or the motion of the Earth around > the Sun. Or the surprising physics behind the rainbow--TG is quite straight > forward in representing light rays in general, for they are quite simply > lines that turn through angles. > > Sprite geometry is wonderfully suited to doing calculus, differential and > integral, both in formulating the problems geometrically and in coming up > with quantitative solutions. As such it is a valuable educational tool. > > As a trivial example of the advantage of Geometry over Analytics, I have > illustrated these two approaches (Euclidian geometry vs. analytic geometry) > in drawing the star at: > > go url "http://jamesphurley.com/RunRev/Stars.livecode" > > The scripts there demonstrate the handicap that LiveCode faces in this very > simple problem in geometry. LC has a problem. The fault, dear Brutus, may lie > in our stars after all. > > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode