The love formula

John Dixon dixonja at hotmail.co.uk
Fri Feb 15 18:05:38 EST 2013


That is really nice....

Two more lines to enhance it...

   set the linesize of grc "heart" to 5
   set the foregroundColor of grc "heart" to 255,0,0

Dixie

> Subject: The love formula
> From: jhurley0305 at sbcglobal.net
> Date: Fri, 15 Feb 2013 14:51:08 -0800
> To: use-livecode at lists.runrev.com
> 
> This is a little late for Valentine's day, but I was being smothered in affection yesterday ;)
> 
> Here is a link to show the formula for a heart: 
> 
> http://www.google.com/imgres?q=the+love+formula&hl=en&client=safari&tbo=d&rls=en&biw=1335&bih=943&tbm=isch&tbnid=S0s-aYE5EW3kdM:&imgrefurl=http://9gag.com/gag/125927&docid=ZUOxCpj_QyMOlM&imgurl=http://d24w6bsrhbeh9d.cloudfront.net/photo/125927_700b.jpg&w=700&h=768&ei=dLkeUaj-Oci9igLty4CYCw&zoom=1&ved=1t:3588,r:5,s:0,i:96&iact=rc&dur=1220&sig=100340526412447560004&page=1&tbnh=172&tbnw=157&start=0&ndsp=20&tx=107&ty=88
> 
> And here is a script to draw one in LC.
> 
> 
> 
> local x0, y0, x, signum
> 
> on mouseUp
>   --The equation of a heart is x^2 + (y - x^(2/3))^2  = 1
>   --So that y = x^(2/3) + or - sqrt(1-x^2) 
>   -- The plus give the top of the heart and the minus produces the bottom
> 
>   if there is no grc "heart" then create grc "heart"
>   set the style of grc "heart" to "line"
>   set the points of grc "heart" to empty
>   put the width of this card/2 into x0
>   Put round( the height of this card /2) into y0
>   put  0 into x
>   --Signum is used to change the sign of the square root
>   put 1 into  signum
>   put drawHeart() into tTopPoints
>   put 0 into x
>   --Now the bottom
>   put -1 into signum
>   put drawHeart() into tBottomPoints
>   if last line of tBottpPoints is empty then delete the last line of tBottomPoints
>   --The botton get drawn bottom up--so reverse the points.
>   put reverse(tBottomPoints) into tBottomPoints
>   --Combine top and bottom.
>   put tTopPoints & cr & tBottomPoints into tFinal
>   if the last line of tFinal is empty then delete last char of tFinal
> --Now put those points into the center of the screen--at x0,y0
>   repeat for each line tLine in tFinal
>      if tLine is empty then next repeat
>      put x0 + 100*item 1 of tLine into xTemp
>      put x0 - 100*item 1 of tLine into xTempLeftSide
>      put y0 - 100*item 2 of tLine into yTemp
>      put  round(xTemp) , round(yTemp) into temp
>      if temp is not empty then put temp & cr after results
>      put  round(xTempLeftSide) , round(yTemp)  into temp2
>      if temp2 is not empty then put temp2 & cr after resultsLeftSide
>   end repeat
>   set the points of grc "heart" to empty 
>   set the points of grc "heart" to resultsLeftSide
>   put cr & resultsLeftSide after results
>   set the points of grc "heart" to results
> end mouseUP
> 
> function y x
>   return  x^(2/3) + signum* sqrt (1 - x^2) 
> end y
> 
> function DrawHeart
>   repeat 
>      if x>= 1 then exit repeat
>      put x , y(x) into tPoint
>      put tPoint & cr after tPoints
>      add .002to x
>   end repeat
>   return tPoints
> end DrawHeart
> 
> function reverse tPoints
>   repeat for each line tLine in tPoints
>      put tLine & cr before results
>   end repeat
>   return results 
> end reverse
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
 		 	   		  


More information about the use-livecode mailing list