How Large are Touches? (SOLVED)

I’m trying to figure out how large the touch object is. perhaps my code is wrong, but toss this in and see what happens:

``````function setup()
TouchableObjects = {}
cp = ControlPoint( 100, 100 )

curTouch = {}
curTouch.img = image( 10, 10 )
setContext( curTouch.img )
noStroke()
fill(250, 127, 13, 255)
ellipse( 5, 5, 10 )
setContext()

curTouch.ts = false -- touched screen
curTouch.tscmax = 80 -- touched screen counter max
curTouch.tsc = 80 -- touched screen counter
curTouch.x = 0
curTouch.y = 0
end

-- This function gets called once every frame
function draw()
-- This sets a dark background color
background(40, 40, 50)
noTint()
cp:draw()

if( curTouch.ts ) then
if( curTouch.tsc > 0 ) then
curTouch.tsc = curTouch.tsc - 1
tint(255, 255 * curTouch.tsc/curTouch.tscmax )
sprite(curTouch.img, curTouch.x, curTouch.y)
else
print( "counter Finished" )
curTouch.ts = false
curTouch.tsc = curTouch.tscmax
end
end

end

function touched(t)
if( t.state == ENDED ) then
print( "touched CP?:", cp:touched(t) )
curTouch.ts = true
curTouch.tsc = curTouch.tscmax
curTouch.x = t.x
curTouch.y = t.y
end
end

ControlPoint = class()

function ControlPoint:init(x, y)
-- you can accept and set parameters here
self.x = x
self.y = y
self.diam = 50

self.img = image( self.diam, self.diam )
setContext( self.img )
noStroke()
fill(102, 102, 102, 255)
ellipseMode( CENTER )
--ellipse( self.diam/2, self.diam/2, self.diam-25 )
stroke(195, 50, 50, 255)
noFill()
strokeWidth ( 5 )
ellipse( self.diam/2, self.diam/2, self.diam-5 )
strokeWidth ( 2 )
stroke( 255, 255, 255, 255 ) --this should be the outer boundary of the CP
rectMode( CENTER )
rect( self.diam/2, self.diam/2, self.diam, self.diam )

popMatrix()
popStyle()
setContext()
end

function ControlPoint:draw()
-- Codea does not automatically call this method
pushStyle()
pushMatrix()
spriteMode( CENTER )
translate( self.x, self.y )
sprite( self.img )
popStyle()
popMatrix()
end

function ControlPoint:touched(touch)
-- Codea does not automatically call this method
--test if touch is within circle( self.x, self.y, rad=50)

--[[
In general, x and y must satisfy (x - center_x)^2 + (y - center_y)^2 < radius^2.

Please note that points that satisfy the above equation with < replaced by == are considered the points on the circle, and the points that satisfy the above equation with < replaced by > are considered the outside the circle.

]]--
a = touch.x - self.x
b = touch.y - self.y
if( (a*a + b*b) < (45*45) ) then
return true
else
return false
end
end

``````

Tap around the ControlPoint, and you’ll see where it starts to return True (aka supposedly you tapped within the ControlPoint), which is outside both a) the bounds of the image the CP is inside, and also b) the radius of the CP.

Any ideas?

nevermind, figured it out. i was using Diameter^2, instead of Radius^2. DERP DERP!!!