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