【学Rust写CAD】4 相对坐标系详解与实现要素概览
相对坐标系(Relative Coordinate System, RCS)是一个强大且灵活的工具,尤其在绘图、三维建模等领域中发挥着重要作用。以下是对相对坐标系的详细解析,包括其定义、应用、特性、与绝对坐标的区别、在CAD中的应用以及实现方式。
一、定义与基础
相对坐标系是依据绝对坐标系或另一个相对坐标系定义原点和坐标轴方向而形成的坐标系统。它允许用户根据实际需求调整坐标轴的方向和原点位置,从而提高了绘图的灵活性和便利性。
二、应用案例
1. 与绝对坐标系一致:
当相对坐标系的原点、坐标轴方向与长度单位与绝对坐标系完全一致时,两者重合。
2. Z轴投影:
通过不定义Z轴方向(或将其设置为与投影平面垂直),可以将三维图形投影为二维图形。
3. 图形放大:
通过调整坐标轴单位方向点的位置,可以实现图形的放大或缩小。
4. 图形平移:
通过改变相对坐标系的原点位置,可以实现图形的平移。
三、特性
1. 定义方式:
通过指定原点、X轴单位正方向点、Y轴单位正方向点和Z轴单位正方向点来定义。
2. 最终依托:
相对坐标系最终依托于绝对坐标系。
3. 输入输出便利性:
相对坐标系使得图形更容易在绝对坐标系中输入和输出。
4. 简化编程:
通过使用相对坐标系,可以简化编程过程,实现与绝对坐标系相同的功能。
四、与绝对坐标的区别
- 绝对坐标:基于全局、固定的参考系,每个点都有唯一且确定的坐标值。
- 相对坐标:值依赖于参考点的位置,具有更高的灵活性。
五、在CAD中的应用
1. 精确绘图:
相对坐标系允许根据图形的实际需求调整坐标轴方向和原点位置,从而提高绘图的精确性。
2. 三维建模:
在三维建模中,相对坐标系的使用尤为重要,可以更方便地在三维空间中创建和修改对象。
3. 视图管理:
通过定义不同的相对坐标系,可以创建不同的视图,以便更好地展示图形的不同部分。
六、相对坐标系的实现
1. 依托的坐标系:
通过编程语言(如Rust)的泛型参数来指定依托的参考系,如绝对坐标系。
2. 原点:
相对坐标系的原点位置,用Dx、Dy、Dz表示。
3. 坐标轴单位正方向点:
- X轴用名称Xx、Xy、Xz表示,如(1,0,0);
- Y轴用名称Yx、Yy、Yz表示,如(0,1,0);
- Z轴用名称Zx、Zy、Zz表示,如(0,0,1);
4. 长度度量单位及数据类型选择:
- 指定长度度量单位,确保度量的一致性,如米、毫米等。
- 数据类型推荐用f64(或其他浮点数类型),编程时考虑更换类型的便捷性,如使用泛型参数。
5. 转换标记:
- 相对坐标系与绝对坐标系之间应可以互相转换。仅能单方向转换的情况必须明确标记,以避免混淆和错误。
七、总结
相对坐标系是一个强大且灵活的工具,可以显著提高绘图、三维建模等领域的效率和准确性。通过理解其定义、应用、特性以及与绝对坐标的区别,我们可以更好地利用相对坐标系来满足各种实际需求。同时,在实现相对坐标系时,需要注意依托的坐标系、原点、坐标轴单位正方向点、长度度量单位及数据类型选择等关键要素,以确保其正确性和可靠性。
相关文章:
【学Rust写CAD】4 相对坐标系详解与实现要素概览
相对坐标系(Relative Coordinate System, RCS)是一个强大且灵活的工具,尤其在绘图、三维建模等领域中发挥着重要作用。以下是对相对坐标系的详细解析,包括其定义、应用、特性、与绝对坐标的区别、在CAD中的应用以及实现方式。 一…...
win编译openssl
一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…...
Kafka 使用说明(kafka官方文档中文)
文章来源:kafka -- 南京筱麦软件有限公司 第 1 步:获取 KAFKA 下载最新的 Kafka 版本并提取它: $ tar -xzf kafka_{{scalaVersion}}-{{fullDotVersion}}.tgz $ cd kafka_{{scalaVersion}}-{{fullDotVersion}} 第 2 步:启动 KAFKA 环境 注意:您的本地环境必须安装 Java 8+。…...
PyTorch数据建模
回归分析 import torch import numpy as np import pandas as pd from torch.utils.data import DataLoader,TensorDataset import time strat = time.perf_counter()...
Node.js与嵌入式开发:打破界限的创新结合
文章目录 一、Node.js的本质与核心优势1.1 什么是Node.js?1.2 嵌入式开发的范式转变二、Node.js与嵌入式结合的四大技术路径2.1 硬件交互层2.2 物联网协议栈2.3 边缘计算架构2.4 轻量化运行时方案三、实战案例:智能农业监测系统3.1 硬件配置3.2 软件架构3.3 核心代码片段四、…...
CVPR | CNN融合注意力机制,芜湖起飞!
**标题:**On the Integration of Self-Attention and Convolution **论文链接:**https://arxiv.org/pdf/2111.14556 **代码链接:**https://github.com/LeapLabTHU/ACmix 创新点 1. 揭示卷积和自注意力的内在联系 文章通过重新分解卷积和自…...
Markdown转换器中间件
目录 需求 文本编码检测 Markdown→HTML 注意 实现 需求 Markdown是一种文本格式;不被浏览器支持;编写一个在服务器端把Markdown转换为HTML的中间件。我们开发的中间件是构建在ASP.NET Core内置的StaticFiles中间件之上,并且在它之前运…...
https是如何保证安全的,又是如何保证不被中间人攻击的?
HTTPS如何保证安全,以及如何防止中间人攻击 保护用户隐私和数据安全已经成为了一个不可忽视的问题。随着网络攻击的不断升级,HTTPS(超文本传输安全协议)成为了我们在网络上交流时的一道重要防线。以下是HTTPS是如何保证安全的&am…...
2025.2.5
Web [SWPUCTF 2021 新生赛]ez_unserialize: 这个题先了解一下反序列化:反序列化是序列化的逆过程。序列化是将对象或数据结构转换为可以存储或传输的格式(如JSON、XML或二进制格式)的过程。反序列化则是将这个格式的数据转换回原始的对象或…...
TGT-HC:一种用于无线时间敏感网络的时隙感知整形MAC方案的调研、设计与评估
论文标题 中文标题:TGT-HC:一种用于无线时间敏感网络的时隙感知整形MAC方案的调研、设计与评估 英文标题:Survey, Design and Evaluation of TGT-HC: A Time-Aware Shaper MAC for Wireless TSN 作者信息 Raymond J. Jayabal(I…...
Ollama教程:轻松上手本地大语言模型部署
Ollama教程:轻松上手本地大语言模型部署 在大语言模型(LLM)飞速发展的今天,越来越多的开发者希望能够在本地部署和使用这些模型,以便更好地控制数据隐私和计算资源。Ollama作为一个开源工具,旨在简化大语言…...
《Redis4.0数据持久化》
【redis持久化导读】Redis作为一款高性能的内存数据库,支持key-value键值对的形式存储数据,为业务层提供了高效的数据查询能力,但大家有思考过一个问题没?假如redis服务所在的主机突然挂了,那么之前缓存在内存的数据是…...
如何利用Docker和.NET Core实现环境一致性、简化依赖管理、快速部署与扩展,同时提高资源利用率、确保安全性和生态系统支持
目录 1. 环境一致性 2. 简化依赖管理 3. 快速部署与扩展 4. 提高资源利用率 5. 确保安全性 6. 生态系统支持 总结 使用 Docker 和 .NET Core 结合,可以有效地实现环境一致性、简化依赖管理、快速部署与扩展,同时提高资源利用率、确保安全性和生态…...
前端js高级25.1.30
原型:函数的组成结构 通过这个图我们需要知道。 假设我们创建了一个Foo函数。 规则:Function.protoType是函数显示原型。__proto__是隐式对象。 Function、Object、Foo函数的__proto__指向了Function.protoType说明。这三个都依托function函数来创建。…...
C语言打印输出星号图形(三角形、菱形、漏斗)
文章目录 1. 介绍2. 案例分析3. 漏斗型4. 直角三角形4.1 左上直角三角形4.2 右上直角三角形4.3 左下直角三角形4.4 右下直角三角形 5. 等腰三角形5.1 正等腰三角形5.2 倒等腰三角形 6. 平行四边形6.1 纵向左下平行四边形6.2 纵向左上平行四边形6.3 横向左上平行四边形6.4 横向左…...
litemall,又一个小商场系统
litemall Spring Boot后端 Vue管理员前端 微信小程序用户前端 Vue用户移动端 代码地址:litemall: 又一个小商城。 litemall Spring Boot后端 Vue管理员前端 微信小程序用户前端 Vue用户移动端...
消费kafka消息示例
以下是使用 Java 结合 Spring Kafka 框架来监听 updated-topic-test 这个 Kafka Topic 的详细实现步骤及代码示例,用于捕获人员信息变更的事件。 1. 添加依赖 在 pom.xml 文件中添加 Spring Kafka 相关依赖: <dependencies><!-- Spring Boot…...
ShardingSphere--03--SpringBoot整合案例
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 SpringBoot整合案例1.建表2.nacos 配置ShardingSphere 规则3.java 依赖4.sql5.java 代码 SpringBoot整合案例 1.建表 CREATE TABLE t_audience_customer_0 (audid …...
K8S运行时切换-从Docker到Containerd的切换实战
1. 切换的原因 性能提升:Containerd通过减少抽象层提升了整体性能。 安全性增强:它提供了更直接的系统调用,减少了潜在的安全风险。 简化架构:Containerd拥有更简洁的设计,使得维护和故障排除更为容易。 官方支持趋…...
C# yield 关键字
前言 在 C# 中,yield 关键字是一个非常独特且强大的语言特性,它主要用于迭代器块(Iterator Block)中,能够让开发者以一种简洁高效的方式实现自定义的可迭代类型,轻松地生成并返回一个序列的值ÿ…...
软件设计模式
目录 一.创建型模式 抽象工厂 Abstract Factory 构建器 Builder 工厂方法 Factory Method 原型 Prototype 单例模式 Singleton 二.结构型模式 适配器模式 Adapter 桥接模式 Bridge 组合模式 Composite 装饰者模式 Decorator 外观模式 Facade 享元模式 Flyw…...
【Leetcode 每日一题 - 补卡】922. 按奇偶排序数组 II
问题背景 给定一个非负整数数组 n u m s nums nums, n u m s nums nums 中一半整数是 奇数 ,一半整数是 偶数 。 对数组进行排序,以便当 n u m s [ i ] nums[i] nums[i] 为奇数时, i i i 也是 奇数 ;当 n u m s [ …...
Redis缓存穿透、击穿、雪崩介绍以及解决方案
一、缓存穿透 1.1 什么是缓存穿透? 指的是,外部进来的请求,查询一个不存在的数据。Redis中没有,数据库中也没有,这时候如果外部恶意大量请求,所有请求会直接查询数据库,导致数据库崩溃 1.2 解决…...
Django框架丨从零开始的Django入门学习
Django 是一个用于构建 Web 应用程序的高级 Python Web 框架,Django是一个高度模块化的框架,使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能…...
AI绘画:解锁商业设计新宇宙(6/10)
1.AI 绘画:商业领域的潜力新星 近年来,AI 绘画技术以惊人的速度发展,从最初简单的图像生成,逐渐演变为能够创造出高度逼真、富有创意的艺术作品。随着深度学习算法的不断优化,AI 绘画工具如 Midjourney、Stable Diffu…...
.net的一些知识点
1.public,protected,private的区别 从访问权限来说是 public>protecd>private 翻译成汉字:公有的>受保护的>私有的 但是在拿那种旧版本(2017及之前)的vs创建class的时候,这个类是没有修饰符的。现在vs2022版本创建带了默认修饰符&#x…...
【Docker】——安装Docker以及解决常见报错
🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL࿰…...
Linux环境部署DeepSeek大模型
一、背景 【DeepSeek 深度求索】这个春节给了世界一个重磅炸弹,弄得美国都睡不好觉。这次与以往不同,之前我们都是跟随着美国的AI人工智能,现在DeepSeek通过算法上的优化,大大降低了训练模型所需的成本以及时间,短期造…...
Java 面试真题
本题适合一到三年 Java 开发 ,以下问题都是按照原面试官提问记录 文章目录 我要进大厂系列面试题二面 我要进大厂系列面试题 全部真题,欢迎投稿你的面试经验。 本篇涉及基础较多,但要耐性看完。 JVM内存模型垃圾回收器用的哪个gc各个算法…...
Electron使用WebAssembly实现CRC-8 MAXIM校验
Electron使用WebAssembly实现CRC-8 MAXIM校验 将C/C语言代码,经由WebAssembly编译为库函数,可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-8 MAXIM格式校验的方式。 CRC-8 MAXIM校验函数WebAssembly源文件 C语言实现C…...
(一)DeepSeek大模型安装部署-Ollama安装
大模型deepseek安装部署 (一)、安装ollama curl -fsSL https://ollama.com/install.sh | sh sudo systemctl start ollama sudo systemctl enable ollama sudo systemctl status ollama(二)、安装ollama遇到网络问题,请手动下载 ollama-linux-amd64.tgz curl -L …...
Unity游戏(Assault空对地打击)开发(6) 鼠标光标的隐藏
前言 鼠标光标在游戏界面太碍眼了,要隐藏掉。 详细操作 新建一个脚本HideCursor,用于隐藏/取消隐藏光标。 写入以下代码。 意义:游戏开始自动隐藏光标,按Esc(隐藏<-->显示)。 using System.Collectio…...
蓝桥杯python基础算法(2-1)——排序
目录 一、排序 二、例题 P3225——宝藏排序Ⅰ 三、各种排序比较 四、例题 P3226——宝藏排序Ⅱ 一、排序 (一)冒泡排序 基本思想:比较相邻的元素,如果顺序错误就把它们交换过来。 (二)选择排序 基本思想…...
算法随笔_36: 复写零
上一篇:算法随笔_35: 每日温度-CSDN博客 题目描述如下: 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改…...
基于springboot的体质测试数据分析及可视化设计
作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 项目包含: 完整源码数据库功能演示视频万字文档PPT 项目编码࿱…...
知识蒸馏教程 Knowledge Distillation Tutorial
来自于:Knowledge Distillation Tutorial 将大模型蒸馏为小模型,可以节省计算资源,加快推理过程,更高效的运行。 使用CIFAR-10数据集 import torch import torch.nn as nn import torch.optim as optim import torchvision.tran…...
排序算法--选择排序
选择排序虽然简单,但时间复杂度较高,适合小规模数据或教学演示。 // 选择排序函数 void selectionSort(int arr[], int n) {for (int i 0; i < n - 1; i) { // 外层循环控制当前最小值的存放位置int minIndex i; // 假设当前位置是最小值的索引// 内…...
视频融合平台EasyCVR无人机场景视频压缩及录像方案
安防监控视频汇聚EasyCVR平台在无人机场景中发挥着重要的作用,通过高效整合视频流接入、处理与分发等功能,为无人机视频数据的实时监控、存储与分析提供了全面支持,广泛应用于安防监控、应急救援、电力巡检、交通管理等领域。 EasyCVR支持GB…...
【react-redux】react-redux中的 useDispatch和useSelector的使用与原理解析
一、useSelector 首先,useSelector的作用是获取redux store中的数据。 下面就是源码,感觉它的定义就是首先是createSelectorHook这个方法先获得到redux的上下文对象。 然后从上下文对象中获取store数据。然后从store中得到选择的数据。 2、useDispatc…...
【自学笔记】Git的重点知识点-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Git基础知识Git高级操作与概念Git常用命令 总结 Git基础知识 Git简介 Git是一种分布式版本控制系统,用于记录文件内容的改动,便于开发者追踪…...
【大模型实战】0代码基于DeepSeek-R1搭建本地知识库,打造专属智能助手
【大模型实战】0代码基于DeepSeek-R1搭建本地知识库,打造专属智能助手 一、ollama下载与安装二、部署deepseek私有模型三、部署embedding模型四、可视化操作工具(1)下载与安装工具(2)部署安装的模型(3) 添加知识库(4)添加智能体助手(5) 助手问答一、ollama下载与安装…...
[LeetCode] 二叉树 I — 深度优先遍历(前中后序遍历) | 广度优先遍历(层序遍历):递归法迭代法
二叉树 基础知识深度优先遍历递归法迭代法(栈)144# 二叉树的前序遍历94# 二叉树的中序遍历145# 二叉树的后序遍历 广度优先遍历递归法迭代法(队列)102# 二叉树的层序遍历107# 二叉树的层序遍历 II199# 二叉树的右视图637# 二叉树的…...
【OS】AUTOSAR架构下的Interrupt详解(上篇)
目录 前言 正文 1.中断概念分析 1.1 中断处理API 1.2 中断级别 1.3 中断向量表 1.4 二类中断的嵌套 1.4.1概述 1.4.2激活 1.5一类中断 1.5.1一类中断的实现 1.5.2一类中断的嵌套 1.5.3在StartOS之前的1类ISR 1.5.4使用1类中断时的注意事项 1.6中断源的初始化 1.…...
NFT Insider #167:Champions Tactics 角色加入 The Sandbox;AI 助力 Ronin 游戏生态
引言:NFT Insider 由 NFT 收藏组织 WHALE Members、BeepCrypto 联合出品, 浓缩每周 NFT 新闻,为大家带来关于 NFT 最全面、最新鲜、最有价值的讯息。每期周报将从 NFT 市场数据,艺术新闻类,游戏新闻类,虚拟…...
保姆级教程Docker部署KRaft模式的Kafka官方镜像
目录 一、安装Docker及可视化工具 二、单节点部署 1、创建挂载目录 2、运行Kafka容器 3、Compose运行Kafka容器 4、查看Kafka运行状态 三、集群部署 四、部署可视化工具 1、创建挂载目录 2、运行Kafka-ui容器 3、Compose运行Kafka-ui容器 4、查看Kafka-ui运行状态 …...
堆的实现——堆的应用(堆排序)
文章目录 1.堆的实现2.堆的应用--堆排序 大家在学堆的时候,需要有二叉树的基础知识,大家可以看我的二叉树文章:二叉树 1.堆的实现 如果有⼀个关键码的集合 K {k0 , k1 , k2 , …,kn−1 } ,把它的所有元素按完全⼆叉树…...
git中文件的状态状态切换
文件的状态分类 Git 中文件的状态主要分为以下几种: Untracked(未跟踪) 定义:这些文件从未被 Git 跟踪过,通常是因为它们是新创建的文件,或者被 .gitignore 排除在外。 示例:新创建的文件 new…...
FreeRTOS学习笔记2:FreeRTOS的基础知识
1.FreeRTOS介绍 FreeRTOS是一个免费的嵌入式实时操作系统,同时它在市面上也是一款主流的操作系统,是工作上必不可少的技能。它具有以下六种特点: 1.免费开源:在商业产品中使用,无潜在商业风险,无需担心。 2…...
.NET 中实现生产者-消费者模型,BlockingCollection<T> 和 Channel<T>使用示例
一、方案对比:不同线程安全集合的适用场景 二、推荐方案及示例代码 方案 1:使用 BlockingCollection(同步模型) public class QueueDemo {private readonly BlockingCollection<int> _blockingCollection new BlockingCo…...
【OpenCV实战】基于 OpenCV 的多尺度与模板匹配目标跟踪设计与实现
文章目录 基于 OpenCV 的模板匹配目标跟踪设计与实现1. 摘要2. 系统概述3. 系统原理3.1 模板匹配的基本原理3.2 多尺度匹配 4. 逻辑流程4.1 系统初始化4.2 主循环4.3 逻辑流程图 5. 关键代码解析5.1 鼠标回调函数5.2 多尺度模板匹配 6. 系统优势与不足6.1 优势6.2 不足 7. 总结…...