function [percent, rgb] = vignette(ap,ya,yc)

N=201;
[x,y] = meshgrid(linspace(-1,1,N));
xsq = x.*x;
rsq = xsq+y.*y;
base = rsq<=1.0;
base_area = sum(sum(base));
radius = zeros(size(ap));
offset = radius;
idx = find(ya>0);
map = base;
radius(idx) = ap(idx)./abs(ya(idx));
offset(idx) = yc(idx)./abs(ya(idx));
for i=1:length(idx)
    k = idx(i);
    yd = y - offset(k);
    rsq = radius(k)*radius(k);
    lens_map = (xsq+yd.*yd)<rsq;
    map = and(map,lens_map);
end
vign_area = sum(sum(map));
percent = 100.0*(1-vign_area/base_area);
rgb = double(cat(3,base,base,base&~map));