当前位置: 首页>>代码示例>>C++>>正文


C++ Span::Near方法代码示例

本文整理汇总了C++中Span::Near方法的典型用法代码示例。如果您正苦于以下问题:C++ Span::Near方法的具体用法?C++ Span::Near怎么用?C++ Span::Near使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Span的用法示例。


在下文中一共展示了Span::Near方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: isoRadius

static void isoRadius(Span& before, Span& blend, Span& after, double radius) {
	// calculate the new offset radius and modify neighbouring spans
	int direction = ((before.ve ^ after.vs) > 0)? 1 : -1;				// offset direction
	Span beforeOff = before.Offset(direction * radius);
	Span afterOff = after.Offset(direction * radius);
	int turnLeft = ((before.ve ^ after.vs) > 0)? 1 : -1;
	if(before.dir == LINEAR) {
		CLine b(beforeOff);
		if(after.dir == LINEAR) {
			CLine a(afterOff);
			blend.pc = b.Intof(a);
		}
		else {
			Circle a(afterOff);
			b.Intof(turnLeft * after.dir, a, blend.pc);
		}
	}
	else {
		Circle b(beforeOff);

		if(after.dir == LINEAR) {
			CLine a(afterOff);
			a.Intof(-turnLeft * before.dir, b, blend.pc);
		}
		else {
			// arc arc
			Circle a(afterOff);
			int leftright = ((Vector2d(b.pc, blend.pc) ^ Vector2d(b.pc, a.pc)) < 0)? 1 : -1;
			b.Intof(leftright, a, blend.pc);
		}
	}
	before.p1 = blend.p0 = before.Near(blend.pc);
	after.p0 = blend.p1 = after.Near(blend.pc);
}
开发者ID:Heeks,项目名称:libarea-old,代码行数:34,代码来源:offset.cpp


注:本文中的Span::Near方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。