VDF常见问题整理(七):如何正确绘制具有PenWidth的圆?

翻译|使用教程|编辑:况鱼杰|2019-08-16 11:39:53.840|阅读 37 次

概述:本系列教程整理了VectorDraw Developer Framework(VDF)最常见问题,教程整理的很齐全,非常适合新手学习,本节教程将会介绍如何在Shade / Render / Wire3D模式下正确绘制具有PenWidth的圆。

相关链接:

    VectorDraw Developer Framework(VDF)是一个用于应用程序可视化的图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。   

VectorDraw Developer Framework试用版下载


问:

    在Shade / Render / Wire3D模式下,如何才能正确绘制具有PenWidth的圆?

答:

    面对这个问题,我们需要先检查是否可以用OpenGL(这个圆圈的4个边缘)来解决这个圆的笔宽问题,如果发现由于OpenGL限制无法解决这个问题。那么,就建议避免使用带有penwidth的圆/椭圆/弧等对象,而是使用Hatch对象,例如:    

vdCircle cir = new vdCircle(); // assume that this is the circle with penwidth inside your block.
cir.SetUnRegisterDocument(vdFramedControl1.BaseControl.ActiveDocument);
cir.setDocumentDefaults();
cir.Center = new gPoint(3,3);
cir.Radius=2;
cir.PenWidth = .5;
cir.PenColor.SystemColor = Color.Green;
vdFramedControl1.BaseControl.ActiveDocument.Model.Entities.AddItem(cir);


vdCircle cir1 = new vdCircle();
cir1=cir.Clone(vdFramedControl1.BaseControl.ActiveDocument) as vdCircle;
cir1.Radius = cir.Radius - cir.PenWidth / 2.0;


vdCircle cir2 = new vdCircle();
cir2 = cir.Clone(vdFramedControl1.BaseControl.ActiveDocument) as vdCircle;
cir2.Radius = cir.Radius + cir.PenWidth / 2.0;

vdPolyhatch hatch = new vdPolyhatch(); // replace the circle with this object
hatch.SetUnRegisterDocument(vdFramedControl1.BaseControl.ActiveDocument);
hatch.setDocumentDefaults();
VectorDraw.Professional.vdCollections.vdCurves curs = new VectorDraw.Professional.vdCollections.vdCurves();
curs.AddItem(cir1);
curs.AddItem(cir2);
hatch.HatchProperties = new vdHatchProperties(VdConstFill.VdFillModeSolid);
hatch.HatchProperties.DrawBoundary = false;
hatch.HatchProperties.FillColor = cir.PenColor;

hatch.PolyCurves.AddItem(curs);
vdFramedControl1.BaseControl.ActiveDocument.Model.Entities.AddItem(hatch);

关注慧聚IT微信公众号 ☟☟☟,了解产品的最新动态及最新资讯。

慧聚IT

Axolot Data厂商夏日特惠,Word报表系列组件大放“价”!



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:VectorDraw https://www.vdraw.com/articles/howto/60001443-circle-with-penwidth-is-not-drawn-properly-in-shaderenderwire3d-modes/

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
title
title
相关厂商
相关产品
VectorDraw File Converter

将常用的图像文件转换为VectorDraw格式标准。3D智能制造推荐产品,帮助企业领跑工业4.0。

VectorDraw Developer Framework

面向对象的矢量绘图控件,支持2D和3D图形,无限分发授权。3D智能制造首选控件,帮助企业领跑工业4.0。

VectorDraw web library (javascript)

基于HTML5的矢量图引擎,100%采用Javascript编写,无客户端插件也可在浏览器中编辑你的矢量图形。3D智能制造首选控件,帮助企业领跑工业4.0。

在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat