Function Newbie question...

Jim Hurley jhurley at infostations.com
Sat Dec 7 12:15:01 EST 2002


>
>--- Jim Hurley <jhurley at infostations.com> wrote:
>
>>  >I wrote a small function that returns the
>>  distance between two Points.
>
>does this pertain to Turtle Graphics?
>
>=====
>erik at erikhansen.org    http://www.erikhansen.org

Eric, there is a function "distance" in Turtle Graphics but it 
relates to the  distance between the current location of the turtle 
(cursor element) and some chosen point.  For example, if the turtle 
were at the origin (center of the screen), the function 
"distance(30,40)" would return 50--the hypotenuse of a right triangle 
whose legs are 30, 40  is 50.

In some versions of TG there are multiple turtles--called sprites. 
And so in a game with multiple, moving objects, one would need a 
function to determine distance between each of the turtles.

The very basics in TG might be the following set of commands and 
functions, which I hope are self explanatory:

Commands:
forward 100
back 100
right 30
left 30
setHeading 45
setXY 30,40
incXY 3,4 --increment the x and y  coordinates

Functions:
xCor()
yCor()
heading ( )
distance (xTemp, yTemp)

This is all quite simple to implement in Transcript. But the beauty 
of TG, like Transcript itself, is that it is extensible.

I know that RunRev is looking eventually to expand its market in 
education. When it does, I think it will be helpful to include 
examples of how Transcript and Turtle Graphics might be employed by 
students as problem solving tools. For example, with sufficient 
background, the students would write their own program to simulate 
planetary motion using only the TG defined above:

constant G = 8000

on orbitTheSun
   forward 90 -- Move the plant 90 units from the sun
   put 0 into vx -- Initial horizontal velocity of planet
   put 12 into vy -- Initial vertical velocity of planet

   repeat until mouseClick() -- My apologies for polling the mouse.
     incXY vx, vy -- Move the turtle (planet) a distance v 
(distance/second) in each second
     add accx() to vx
     add accy() to vy
   end repeat

end orbitTheSun

function accx
   -- Newton's inverse square law of gravity
   return -G * xcor()/ distance(0,0)^3 -- The sun is at 0,0
end accx

function accy
   return -G * ycor()/ distance(0,0)^3
end accy

The result is an ellipse.

The emphasis would not necessarily be programing for its own sake, 
but for programing (Transcript + TG) as a problem solving tool in a 
variety of disciplines--in fact, getting back to the original 
function of programming.

Sorry Eric: That's probably a lot more than your wanted to know about 
the distance function.

Jim Hurley
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.runrev.com/pipermail/use-livecode/attachments/20021207/8c9e7ceb/attachment.html>


More information about the use-livecode mailing list