HGeometry-ipe公司
这个包提供了一个用于读写Ipe的API(http://ipe.otfried.org)文件。这一切都很顺利进度。因此,API是实验性的,可能随时更改!
下面是一个示例,显示如何从Ipe文件中读取一组点,计算Delaunay三角剖分和欧氏极小值生成树,并将结果再次写入输出文件。请参阅到hgeometry示例获取完整代码。
main包含::选项->IO()mainWith(选项inFile outFile)=dopts<-readAllFrom@(点2 R)in文件let pts'=非空.fromList ptsdt=toPlanarSubdivision(Proxy@DTWorld)。delaunay三角剖分$pts'emst=欧几里得MST pts'out=[iO$drawPlanarSubdivisionWith drawVtx drawEdge(drawInternalFace dt)drawOuterFace dt! attr SLayer“delaunayTriangulation”,iO$drawTree’emst!attr SLayer“emst”]outputFile=singlePageFromContent输出outputFile'<-addStyleSheetFrom“../hgeometry-ipe/resources/opacities.isy”输出文件writeIpeFile输出文件输出文件'--| delaunay三角测量“存在”的世界数据DTWorld--|使用默认表示绘制顶点;磁盘标记。对于--剩下的我们保留其原始属性。drawVtx::IpeOut'可能(VertexId,VertexData r(IpeAttributes IpeSymbol r))IpeSympol rdrawVtx(_vi,VertexData p ats)=仅$defIO p!自动测试系统--|使用法线线段绘制边drawEdge::IpeOut'可能(省道,线段2 vr:+e)路径rdrawEdge(_d,s:+_)=仅$defIO s--|内部面是填充多边形。drawInternalFace::PlanarSubdivision s v e f r绘制内部面::平面细分->IpeOut’Maybe(FaceId’s,SomePolygon v r:+f)路径rdrawInternalFace s(fi,pg:+_)=仅$defIO pg!attr SFill浅青色--drawOuterFace::(Ord r,Num r)=>IpeOut'Maybe(FaceId’s,MultiPolygon(Maybe v)r:+f)路径rdrawOuterFace(_,pg:+_)=仅$defIO pg!attr产能“10%”! attr SFill浅灰色
请参阅hgeometry示例包中提供了更多示例。