彩票走势图

VDF常见问题整理(七十一):纠正为Infinity或NaN double值的对象属性

翻译|使用教程|编辑:杨鹏连|2021-04-21 11:37:17.683|阅读 158 次

概述:本系列教程整理了VectorDraw Developer Framework(VDF)最常见问题,教程整理的很齐全,非常适合新手学习。本文将会介绍如何纠正为Infinity或NaN double值的对象属性。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

VectorDraw开发人员框架(VDF)是一个使用的应用程序可视化的图形引擎库。有了VDF提供的功能,您可以轻松地创建,编辑,管理,输出,输入和打印2D和3D图形文件。该库还支持许多向量和先前输入和输出格式,包括本地PDF和SVG输入。

点击下载VectorDraw开发者框架


问:如何校正为Infinity或NaN double值的对象属性?

答:出于某种原因,图中可能存在的物体是无穷大或NaN的双重性质 ,这可能产生很多问题到图像替换或选择。在下面的示例检查所有的图中有对StartTangent和EndTangent无效属性的多段线。

使用下面的代码在出口前DWG格式图纸

//check if a double value is a valid number
static bool IsdoubleValid(double d)
{
return !(double.IsNaN(d) && !double.IsInfinity(d));
}
//check if a Vector x,y,z are valid numbers
static bool IsValidVector(Vector v)
{
return IsdoubleValid(v.x) && IsdoubleValid(v.y) && IsdoubleValid(v.z);
}

document.UndoHistory.PushEnable(false);//force disable the undo history .Changes of polylines wrong properties does not need to be saved to undo history
vdPrimariesList primaries = document.GetPrimaries(true);//get all entities in the drawing in all layouts and all blocks
foreach (vdPrimary item in primaries)
{
vdPolyline pl = item as vdPolyline;
if (pl == null) continue;
if (pl.StartTangent != null && !IsValidVector(pl.StartTangent)) pl.StartTangent = null;
if (pl.EndTangent != null && !IsValidVector(pl.EndTangent)) pl.EndTangent = null;
}
document.UndoHistory.PopEnable();//restore the undo history to previous state4

================================================== =====

如果您对想要购买正版授权VectorDraw Developer Framework(VDF),可以联系咨询相关问题。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP