一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法_2

文档序号:9564707阅读:来源:国知局
,1,0)- (0,0,1),这可以构成一个SVG多边形元素。其他七个三角形面对应的SVG多边形元素,均可由此元素通过坐标变换而来(沿坐标轴旋转,或沿坐标平面翻转)。
[0025]第三,三维到二维透视投影方法的实现。与前一步坐标变换类似,通过逐个SVG元素逐个特征点进行三维到二维的透视投影,所有特征点独立操作,互不影响。
[0026]值得注意的是,由于景深远近不同,距离观察者近处的SVG元素应该遮挡住远处的SVG元素,体现在标准SVG矢量图形上,就是从底层到顶层的叠放顺序。在进行三维到二维的透视投影时,同时根据每个SVG元素中心点坐标计算距离观察者的远近,进而体现在SVG元素叠放顺序上,即可满足需求。
[0027]最终,将投影过的所有结果SVG元素归纳到同一平面上,形成三维对象的透视投影。
[0028]仍然以图2为例,经过若干三维坐标变换和透视投影,图(28)对应的SVG图像如下所示:
<?xml vers1n=〃L 0〃 standalone=〃no〃 ?> <svg viewBox="0 0 960 540" xmlns="http://www.w3.0rg/2000/svg〃 >
<g>
〈polygon points = 〃346.982,331.683 402.754,320.756
399.179, 381.961〃 />
〈polygon points = 〃450.243,332.088 402.754,320.756
399.179, 381.961〃 />
〈polygon points=〃346.982,331.683 402.754,320.756
397.961,281.054〃 />
〈polygon points = 〃450.243,332.088 402.754,320.756
397.961,281.054〃 />
〈polygon points = 〃346.982,331.683 394.025,344.001
399.179, 381.961〃 />
〈polygon points = //450.243, 332.088 394.025, 344.001
399.179, 381.961〃 />
〈polygon points = //346.982, 331.683 394.025, 344.001
397.961,281.054〃 />
〈polygon points = //450.243, 332.088 394.025, 344.001
397.961,281.054〃 />
</g>
</svg>
这是一个标准的SVG图形,基于XML语言表示。它包含有8个多边形(po 1 ygon )元素,每个都是三角形。SVG绘图标准是按照文本读取顺序依次绘图,因此文本中最靠前的polygon元素是距离观察者最远的,最先绘制,绘图过程中会被后来的polygon遮挡住。
[0029]由此不难推断,图(21)对应的SVG图形如下所示:
<?xml vers1n=〃l.0〃 standalone=〃no〃 ?>
<svg viewBox="0 0 960 540" xmlns="http://www.w3.0rg/2000/svg〃 >
<g>
〈polygon points = 〃346.982,331.683 402.754,320.756
399.179, 381.961〃 />
</g>
</svg>
只包含一个polygon,也就是图(28)的SVG图形中最靠前的那个polygon。
[0030]类似的,图(25)对应的SVG图形如下所示:
<?xml vers1n=〃l.0〃 standalone=〃no〃 ?>
<svg viewBox="0 0 960 540" xmlns="http://www.w3.0rg/2000/svg〃 >
<g>
〈polygon points = 〃346.982,331.683 402.754,320.756
399.179, 381.961〃 />
〈polygon points = 〃450.243,332.088 402.754,320.756399.179, 381.961〃 />
〈polygon points = 〃346.982,331.683 402.754,320.756
397.961,281.054〃 />
〈polygon points = "450.243,332.088 402.754,320.756
397.961,281.054〃 />
〈polygon points = 〃346.982,331.683 394.025,344.001
399.179, 381.961〃 />
</g>
</svg>
包含了图(28)的SVG图形中的前五个polygon。
[0031]图2中每一幅图对应的SVG图形都是二维的,不包含任何三维坐标信息,这也正是SVG图形格式标准所规定的。不过,这并不影响基于SVG图形显示出三维视觉效果,只要三维到二维透视投影的坐标计算正确,在版图设计工具中绘制出来,用户就会感觉正在观察一个三维对象(物理版图或函数图像)。
[0032]图5也能说明类似的三维视觉效果特点,单独观察图5的一个片段(51),通常都会认为只是4个平面多边形。然而观察接近于完整的片段(52),就很明显看出是个由三维曲面围成的三维空间。
[0033]因此,基于纯二维的SVG矢量图形标准,表达三维矢量对象,是完全可行的。本专利的创新点就在于此:基于纯二维的SVG图形格式标准,解决了三维对象从建模到显示的一系列问题,提出了完整可行的解决方案。
【主权项】
1.一种集成电路设计工具中基于二维SVG矢量图形的三维矢量对象表达方法,技术特征在于:第一、三维对象建模方法:通过三维空间中的若干SVG元素(二维面元、二维曲线段)共同描述某个三维矢量对象(三维物理版图、三维函数图像);第二、三维坐标变换方法:通过逐个SVG元素逐个特征点独立进行三维变换实现三维对象的坐标变换;第三、三维到二维透视投影方法:通过逐个SVG元素逐个特征点独立进行三维到二维的透视投影,并根据每个SVG元素中心点坐标计算底层到顶层的叠放顺序,所有结果SVG元素归纳到同一平面上,形成标准SVG矢量图形,作为三维对象的透视投影。
【专利摘要】一种集成电路设计工具中基于二维SVG矢量图形的三维矢量对象表达方法属于半导体集成电路设计自动化领域,主要涉及集成电路相关三维对象的描述与显示。半导体行业用户越来越期望在版图设计工具中观察到直观的三维视图,事实上该行业的工具软件运行环境受限,只有通用的二维窗口绘图接口,几乎没有三维引擎支持。本发明基于纯二维的SVG图形格式标准,解决了三维对象从建模到显示的一系列问题,提出了完整可行的解决方案。
【IPC分类】G06T17/00, G06F17/50
【公开号】CN105320783
【申请号】CN201410309029
【发明人】于士涛, 马海南, 李志梁, 路艳芳
【申请人】北京华大九天软件有限公司
【公开日】2016年2月10日
【申请日】2014年7月1日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1