TCPDF - 裁剪多边形

时间:2016-10-24 17:43:41

标签: pdf rendering polygon tcpdf vector-graphics

我正在使用TCPDF::Polygon()从蓝色TCPDF::Rect()顶部的文本文件中渲染海岸线(陆地)坐标。文本文件包含整个世界的海岸线,但是通过在地图投影中指定中心纬度和经度,以及一些乘法来获得“缩放”效果,我设法在A4页面中显示所需的区域。

问题:

正如您在图像中看到的那样,海岸线一直被绘制到文档的边缘(以及更远处)。虽然文本文件中的大多数海岸线坐标都在文档的可见区域“外部”,但它们仍然在输出文件中占用了大约几百字节。

是否有一种很好的方法可以“修剪”海岸线多边形,以便海岸线能够很好地适应蓝色区域,并且多余的椎体完全被排除在文档之外(不占用文件空间)?

1 个答案:

答案 0 :(得分:1)

<强>解决方案:

&#39;裁剪&#39;我正在寻找使用剪辑,正如@Rad雷克萨斯所建议的那样:

// Start clipping
$pdf->StartTransform();

// Draw clipping rectangle
$pdf->Rect($DOC_MARG, $DOC_MARG, $MAP_W, $MAP_H, 'CNZ');

// -- Draw all polygons here (land areas) --

// Stop clipping
$pdf->StopTransform();

来源:https://stackoverflow.com/a/9400490/2667737

为了节省输出文件中的空间,我检查每个多边形(平面区域)中的每个像素,并仅渲染在页面边界内有一个或多个像素的多边形 - 也由@Rad建议。在我的第一篇文章的示例视图中,使用此方法将大小减半。

感谢您的帮助!