opencascade AIS_InteractiveContext源码学习8 trihedron display attributes

AIS_InteractiveContext

在这里插入图片描述

前言

交互上下文(Interactive Context)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中,您才能直接调用交互对象的方法。

trihedron display attributes

三维坐标系(trihedron)显示属性通常包括以下内容:

  1. 颜色:设置三维坐标系的颜色,以便在图形中清晰可见。

  2. 线型:定义三维坐标系的线条样式,例如实线、虚线或其他类型。

  3. 线宽:指定三维坐标系线条的宽度,影响其在图形中的视觉效果。

  4. 箭头样式:控制坐标轴末端箭头的样式,以指示方向。

  5. 坐标轴长度:设置坐标轴的长度,以适应图形的比例。

  6. 标记:可选择在坐标轴上添加刻度或标签,以显示坐标值。

这些属性有助于增强三维坐标系的可读性和视觉效果,使其在不同应用中更加清晰和易于理解。

1:SetTrihedronSize

设置三维坐标系的大小 aSize。用于更改三维坐标系默认显示值 100 毫米。若在您自定义的交互对象中使用此函数,则需要调用新类的 Compute 函数。这将重新计算每个显示的三维坐标系的呈现。

2:PlaneSize

如果 X 方向的长度 XSize 与 Y 方向的长度 YSize 相同,则返回 true。
AIS_InteractiveContext 中,SetTrihedronSize 用于设置三维坐标系的大小。这一方法通常在需要自定义显示大小的场合使用。

用法示例

以下是使用 AIS_InteractiveContext::SetTrihedronSize 的示例代码:

#include <AIS_InteractiveContext.hxx>
#include <AIS_Trihedron.hxx>// 设置三维坐标系的大小
void SetTrihedronSize(AIS_InteractiveContext& context, Standard_Real size) {// 创建三维坐标系对象Handle(AIS_Trihedron) trihedron = new AIS_Trihedron();// 设置坐标系的大小context.SetTrihedronSize(size);// 显示三维坐标系context.Display(trihedron, Standard_True); // 第一个参数是形状,第二个是是否立即更新视图
}// 调用示例
// AIS_InteractiveContext context; // 假设交互上下文已经创建
// SetTrihedronSize(context, 100.0); // 设置大小为 100.0 毫米

参数

  • size:指定三维坐标系的大小(通常以毫米为单位)。

通过这种方式,可以在 OpenCascade 的交互上下文中灵活调整三维坐标系的显示大小,适应不同的可视化需求。

tessellation deviation properties for automatic triangulation

在 OpenCascade 中,网格细分(tessellation)偏差属性用于控制自动三角剖分的精度和表现。这些属性帮助定义如何将几何形状转化为三角形网格。以下是一些常见的网格细分偏差属性:

  1. 最大弦偏差:控制网格细分过程中,曲线或曲面上弦的最大偏差。较小的偏差值会生成更精细的三角形。

  2. 最大角度偏差:定义三角形中允许的最大角度变化,以确保生成的三角形在视觉上不会过于扭曲。

  3. 相对偏差:相对于对象大小的偏差值,允许在不同尺寸的对象上保持一致的细分质量。

  4. 绝对偏差:固定的偏差值,不受对象尺寸影响。

通过调整这些属性,可以优化渲染效果和性能,确保在不同场景中平衡细节和计算资源。

1:SetDeviationCoefficient

设置偏差系数 theCoefficient。曲线或曲面的绘制是基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数 theCoefficient 定义了弦可以偏离曲线切线的最大角度。如果达到此限制,则开始新的三角形。该偏差是绝对的,通过方法 SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以要求相对偏差。此偏差为:SizeOfObject * DeviationCoefficient。

2:SetDeviationAngle

设置偏差系数 theCoefficient。曲线或曲面的绘制基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数 theCoefficient 定义了弦可以偏离曲线切线的最大角度。一旦达到此限制,就会开始新的三角形。该偏差是绝对的,通过方法 SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以请求相对偏差,此偏差为:SizeOfObject * DeviationCoefficient。

3:SetAngleAndDeviation

调用 AIS_Shape 的 SetAngleAndDeviation 方法,以同时设置角度和偏差系数。

4:SetDeviationCoefficient

设置偏差系数 theCoefficient。曲线或曲面的绘制基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数 theCoefficient 定义了弦可以偏离曲线切线的最大角度。如果达到此限制,则开始新的三角形。该偏差是绝对的,通过方法 SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以请求相对偏差,此偏差为:SizeOfObject * DeviationCoefficient。

5:DeviationCoefficient ()

返回偏差系数。曲线或曲面的绘制基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数定义了弦可以偏离曲线切线的最大角度。一旦达到此限制,就会开始新的三角形。该偏差是绝对的,通过 Prs3d_Drawer::SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以请求相对偏差,此偏差为:SizeOfObject * DeviationCoefficient。

6:DeviationAngle

设置偏差系数 theCoefficient。曲线或曲面的绘制是基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数 theCoefficient 定义了弦可以偏离曲线切线的最大角度。如果达到此限制,则开始新的三角形。该偏差是绝对的,通过方法 SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以请求相对偏差,此偏差为:SizeOfObject * DeviationCoefficient。

简单示例

HLR (Hidden Line Removal) display attributes

HLR(隐藏线去除)显示属性是指在计算机图形学中,特别是在 CAD(计算机辅助设计)和 3D 建模应用程序中,用于控制如何渲染或去除隐藏线的设置和参数。以下是与 HLR 显示相关的一些关键属性:

  1. 偏差系数:此属性设置线(通常是边缘或轮廓)可以偏离直线的容忍度,超出此容忍度后该线将被视为隐藏。这会影响隐藏线去除的准确性。

  2. 最大弦偏差:定义线段(弦)从真实曲线或表面边缘可以允许的最大偏差。该参数对于确定何时打断线段以实现更准确的渲染至关重要。

  3. 阴影显示模式:指定在去除隐藏线时对象表面的渲染方式。该模式通常涉及将表面分解为三角形或其他基本图元,以计算光的反射和阴影。

  4. 三角形形成:描述如何从曲线和表面的弦形成三角形,以便于隐藏线去除。三角形是一种常见的图元,因为它们易于计算和渲染。

  5. 相对偏差:允许相对于正在渲染的对象的大小指定偏差。该参数有助于在不同规模的对象之间实现一致的视觉质量。

这些属性共同确保在 CAD 和类似应用程序中 3D 对象的表示既视觉准确又计算高效,通过选择性去除隐藏线,同时保持可见边缘和表面的完整性。

1:HiddenLineAspect

初始化默认绘图工具(或 Drawer)中的隐藏线外观。默认值为:颜色:Quantity_NOC_YELLOW,线型:Aspect_TOL_DASH,宽度:1。

2:SetHiddenLineAspect

设置隐藏线外观 anAspect。Aspect 定义了 HLR 投影中隐藏线的显示属性。

3:DrawHiddenLine

如果隐藏线要绘制,则返回 Standard_True。默认情况下,隐藏线不被绘制。

4:EnableDrawHiddenLine

初始化默认绘图工具(或 Drawer)中的隐藏线外观。默认值为:颜色:Quantity_NOC_YELLOW,线型:Aspect_TOL_DASH,宽度:1。

5:DisableDrawHiddenLine

初始化默认绘图工具(或 Drawer)中的隐藏线外观。默认值为:颜色:Quantity_NOC_YELLOW,线型:Aspect_TOL_DASH,宽度:1。

iso-line display attributes

ISO 线显示属性通常指用于控制 ISO 线(等值线)在图形界面中呈现的设置。以下是一些常见的 ISO 线显示属性:

  1. 颜色:设置 ISO 线的颜色,以便在图形中清晰可见。

  2. 线型:定义 ISO 线的样式,比如实线、虚线或其他类型。

  3. 线宽:指定 ISO 线的宽度,影响其在图形中的视觉效果。

  4. 透明度:控制 ISO 线的透明度,使其可以与其他图形元素相互作用。

  5. 间距:定义相邻 ISO 线之间的距离,这对于等值线的密度和可读性非常重要。

  6. 标签:可选择显示 ISO 线的标签,以标识对应的数值或类别。

这些属性有助于增强数据可视化效果,使得 ISO 线在不同的应用中更具可读性和美观性。

1:SetIsoNumber

设置显示的 U 和 V 等参数的数量。

2:IsoNumber

返回显示的 U 和 V 等参数的数量。

3:IsoOnPlane

方法1:如果启用了在平面上绘制等参数,则返回 True。如果 <forUIsos> 为 False,则不绘制。
方法2:如果启用了在平面上绘制等参数,则返回 True。

4:IsoOnTriangulation

方法1:如果启用了在三角剖分算法上绘制等值线,则返回 true。
方法2:启用或禁用特定对象的等值线三角剖分构建。如果禁用三角剖分构建,默认的平面构建器将为给定对象计算等值线。
方法3:启用或禁用默认绘图工具的等值线三角剖分构建。如果禁用三角剖分构建,默认的平面构建器将为给定对象计算等值线。

来源:网址
继续obsolete methods

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/46234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最优化(10):牛顿类、拟牛顿类算法

4.4 牛顿类算法——介绍了经典牛顿法及其收敛性&#xff0c;并介绍了修正牛顿法和非精确牛顿法&#xff1b; 4.5 拟牛顿类算法——引入割线方程&#xff0c;介绍拟牛顿算法以及拟牛顿矩阵更新方式&#xff0c;然后给出了拟牛顿法的全局收敛性&#xff0c;最后介绍了有限内存BFG…

Java中创建线程的方式

文章目录 创建线程ThreadRunnableCallable线程池创建方式自定义线程池线程池工作原理阻塞队列线程池参数合理配置线程池参数 创建线程 在Java中创建一个线程&#xff0c;有且仅有一种方式&#xff0c;创建一个Thread类实例&#xff0c;并调用它的start方法。 Thread 最经典也…

在Linux上设置MySQL允许远程连接的完整指南

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

【Linux】多线程_6

文章目录 九、多线程7. 生产者消费者模型生产者消费者模型的简单代码结果演示 未完待续 九、多线程 7. 生产者消费者模型 生产者消费者模型的简单代码 Makefile&#xff1a; cp:Main.ccg -o $ $^ -stdc11 -lpthread .PHONY:clean clean:rm -f cpThread.hpp&#xff1a; #i…

【Linux】Linux必备的基础指令

目录 Linux必备的基础指令一 、 什么是Linux二、 Linux常用命令2.1 ls2.2 pwd2.3 cd2.4 touch2.5 cat2.6 mkdir2.7 rm 三、 Linux重要指令3.1 cp3.2 mv3.3 tail3.4 vim3.5 grep3.6 ps3.7 netstat Linux必备的基础指令 一 、 什么是Linux 系统编程&⽹络编程 Linux⾃⾝提供…

快速掌握块级盒子垂直水平居中的几种方式

大家好&#xff01;今天我们来聊聊Web开发中如何实现块级盒子水平居中。在前端开发中&#xff0c;经常需要将一个块级盒子在父元素中进行垂直和水平居中对齐&#xff0c;本文将介绍几种常见且高效的实现方法。 一、子元素有固定宽高 第一种情况 子元素有固定宽高&#xff08;…

编译x-Wrt 全过程

参考自;​​​​​​c编译教程 | All about X-Wrt 需要详细了解的小伙伴还请参看原文 ^-^ 概念&#xff1a; x-wrt&#xff08;基于openwrt深度定制的发行版本&#xff09; 编译系统: ubuntu22.04 注意&#xff1a; 特别注意的是&#xff0c;整个编译过程&#xff0c;都是用 …

汽车的驱动力,是驱动汽车行驶的力吗?

一、地面对驱动轮的反作用力&#xff1f; 汽车发动机产生的转矩&#xff0c;经传动系传至驱动轮上。此时作用于驱动轮上的转矩Tt产生一个对地面的圆周力F0&#xff0c;地面对驱动轮的反作用力Ft(方向与F0相反)即是驱动汽车的外力&#xff0c;此外力称为汽车的驱动力。 即汽车…

知识图谱研究综述笔记

推荐导读&#xff1a;知识图谱Knowledge Graph Embeddings 论文标题:A Survey on Knowledge Graphs:Representation, Acquisition and Applications发表期刊:IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS, 2021本文作者&#xff1a;Shaoxiong Ji, Shirui Pan, M…

Swiper轮播图实现

如上图&#xff0c;列表左右滚动轮播&#xff0c;用户鼠标移动到轮播区域&#xff0c;动画停止&#xff0c;鼠标移开轮播继续。 此例子实现技术框架是用的ReactCSS。 主要用的是css的transform和transition来实现左右切换动画效果。 React代码&#xff1a; import React, { us…

二叉树六道基本习题,你都会了吗?

Hello大家好呀&#xff0c;本博客目的在于记录暑假学习打卡&#xff0c;后续会整理成一个专栏&#xff0c;主要打算在暑假学习完数据结构&#xff0c;因此会发一些相关的数据结构实现的博客和一些刷的题&#xff0c;个人学习使用&#xff0c;也希望大家多多支持&#xff0c;有不…

手把手教你写UART(verilog)

最近工作用uart用的比较多&#xff0c;为了让自己更好的掌握这个协议&#xff0c;写了这篇文章&#xff0c;解读了uart程序的编写过程&#xff08;程序参考了米联客的教程&#xff09;。 最基础的概念 UART是用来让两个设备之间传输数据的协议&#xff0c;毕竟我不能直接给你一…

鸿蒙HarmonyOS应用开发为何选择ArkTS不是Java?

前言 随着智能设备的快速发展&#xff0c;操作系统的需求也变得越来越多样化。为了满足不同设备的需求&#xff0c;华为推出了鸿蒙HarmonyOS。 与传统的操作系统不同&#xff0c;HarmonyOS采用了一种新的开发语言——ArkTS。 但是&#xff0c;刚推出鸿蒙系统的时候&#xff0…

JavaScript进阶(四)---js解构

目录 一.定义&#xff1a; 二.类型&#xff1a; 1.数组解构&#xff1a; 1.1变量和值不匹配的情况 1.2多维数组 2.对象解构 3.对象数组解构 4.函数参数解构 5.扩展运算符 一.定义&#xff1a; JavaScript 中的解构&#xff08;Destructuring&#xff09;是一种语法糖&…

Spring Web MVC入门(2)(请求1)

目录 请求 1.传递单个参数 2.传递多个参数 3.传递对象 4.后端参数重命名(后端参数映射) 非必传参数设置 5.传递数组 请求 访问不同的路径就是发送不同的请求.在发送请求时,可能会带一些参数,所以学习Spring的请求,主要是学习如何传递参数到后端及后端如何接收. 1.传递单…

Java时间复杂度介绍以及枚举

时间复杂度 从小到大&#xff1a; O(1) 常数阶。复杂度为O(1)与问题规模无关 线性阶 O&#xff08;n&#xff09;比如一个for循环中代码执行n遍 n阶 对数阶 int n9; int i1; while(i<n) { i*2; } 2^x>n时候退出。次数xlog2^n 时间复杂度为O(logN) 根号阶 int…

OpenGL笔记十之Shader类的封装

OpenGL笔记十之Shader类的封装 —— 2024-07-10 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十之Shader类的封装1.运行2.目录结构3.main.cpp4.application4.1.CMakeLists.txt4.2.Application.h4.3.Application.cpp 5.assets5.1.shaders&#xf…

Hive及其架构简介

什么是 Hive &#xff1f; 一个基于 Hadoop 的数据仓库&#xff0c;适用于一些高延迟性的应用&#xff08;离线开发&#xff09;&#xff0c;可以将存储在 Hadoop 文件中的结构化、半结构化数据文件映射为一张数据库表&#xff0c;并基于表提供类似 SQL 的查询模型&#xff0c…

前一段时间比较火的刷网课平台源码,带数据库和教程

前一段时间比较火的刷网课平台源码&#xff0c;带数据库和教程。 好在疫情已经结束了&#xff0c;希望今后世上再无网课。 这个代码免费提供给大家学习开发用吧&#xff0c;作为一个php的入门学习案例用用还可以。 使用办法 网站根目录解压 打开nginx.htaccess文件&#x…

3.4、matlab实现SGM/BM/SAD立体匹配算法计算视差图

1、matlab实现SGM/BM/SAD立体匹配算法计算视差图简介 SGM&#xff08;Semi-Global Matching&#xff09;、BM&#xff08;Block Matching&#xff09;和SAD&#xff08;Sum of Absolute Differences&#xff09;都是用于计算立体匹配&#xff08;Stereo Matching&#xff09;的…