Hi Mike,
Yes, that works.
Following is the application which uses the view space
polygon(rectangle)
to trim each edge polygon(subject):
//====trim each edge polygons======
EdgeId.forEach(function(d)//---array with each edge polygon id---
{
var edgePolygon=newG.select("#"+d)
var edgePoints=edgePolygon.attr("points")
//--points format: x0,y0 x1,y1 x2,y2 x3,y3 ....
var pntArray=[]
var splitEdge=edgePoints.split(" ")
for(var k=0;k<splitEdge.length;k++)
{
var xy=splitEdge[k].split(",")
pntArray.push([parseFloat(xy[0]),parseFloat(xy[1])])
}
//--view space(polygon): left to right ---
var trimMe=d3.geom.polygon([[0,0],[0,h],[w,h],[w,0]])
.clip(pntArray)//---subject(polygon)---
edgePolygon.attr("points",trimMe.join())
})
}
Thanks,
Francis