[cairo] Finding minimum distance to a stroke or fill
Bill Spitzak
spitzak at d2.com
Wed Mar 1 15:23:25 PST 2006
Carl Worth wrote:
> Should we actually
> provide all four functions:
>
> cairo_distance_squared_to_stroke
> cairo_distance_to_stroke
> cairo_distance_squared_to_fill
> cairo_distance_to_stroke
>
> Thoughts and suggestions?
This is a hard one.
It is really useful to return a negative value to indicate "inside",
thus allowing "f()<=threshold" to detect hits, while
"abs(f())<=threshold" to detect clicks on the edge. Also some
intersection calculations will naturally produce such negative values.
But while "distance_to" may not suprise anybody by returning these
negative numbers, they may not expect this from distance_squared.
But there is an obvious savings in not doing the sqrt, especially since
many programs would immediatly square the result anyway.
My guess now is that only the squared functions should be provided, and
they should return -d*d for inside values. But I'm really not sure...
More information about the cairo
mailing list