news 2026/7/30 5:16:32

与 Teigha的相爱相杀

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
与 Teigha的相爱相杀

与 Teigha的相爱相杀

Teigha再脱离CAD处理DWG,效率还是比较高的,
最近研究通过Teigha识别一些图形过程中,发现一些让我血压飙升的问题。

1.API未实现的问题

在处理共线线段之间的位置关系时,判断线段之间是否有重叠关系,看到Overlap,感觉Teigha很贴心,飞快的码完代码。

LineSegment2d line1 = new LineSegment2d(new Point2d(0, 0), new Point2d(10, 0)); LineSegment2d line2 = new LineSegment2d(new Point2d(10, 0), new Point2d(20, 0)); LineSegment2d line3 = new LineSegment2d(new Point2d(5, 0), new Point2d(20, 0)); LineSegment2d line4 = new LineSegment2d(new Point2d(5, 0), new Point2d(5, 5)); LinearEntity2d result2 = line1.Overlap(line2); LinearEntity2d result3 = line1.Overlap(line3); LinearEntity2d result4 = line1.Overlap(line4);

我很期待的等待你的结果,你却让我失望透顶。

什么鬼,有API,没有实现,那么你暴露出来API的意义是什么?

2. LineSegment2d 对象不能作为字典的Key

LineSegment2d line1 = new LineSegment2d(new Point2d(0, 0), new Point2d(10, 0)); LineSegment2d line2 = new LineSegment2d(new Point2d(10, 0), new Point2d(20, 0)); LineSegment2d line3 = new LineSegment2d(new Point2d(5, 0), new Point2d(20, 0)); LineSegment2d line4 = new LineSegment2d(new Point2d(5, 0), new Point2d(5, 5)); Dictionary<LineSegment2d, string> dict = new Dictionary<LineSegment2d, string>(); dict.Add(line1,""); dict.Add(line2,""); dict.Add(line3,""); dict.Add(line4,"");

原因大概是:

以上便是我最近几天遇到的奇怪,气人的问题,如果你有好的解决方案,请一起探讨学习。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/29 14:01:57

PlayCover深度解析:在Apple Silicon Mac上运行iOS游戏的技术实践

PlayCover深度解析&#xff1a;在Apple Silicon Mac上运行iOS游戏的技术实践 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 技术架构与实现原理 PlayCover作为专为Apple Silicon架构设计的开源解决方…

作者头像 李华
网站建设 2026/7/26 2:35:06

Vue3甘特图组件深度解析:构建高性能项目管理界面的终极方案

Vue3甘特图组件深度解析&#xff1a;构建高性能项目管理界面的终极方案 【免费下载链接】gantt An easy-to-use Gantt component. 持续更新&#xff0c;中文文档 项目地址: https://gitcode.com/gh_mirrors/gantt/gantt 在数字化项目管理时代&#xff0c;甘特图作为任务…

作者头像 李华
网站建设 2026/7/26 10:31:37

23、资源限制与线程编程:原理、优势与模式

资源限制与线程编程:原理、优势与模式 1. 资源限制的设置与获取 资源限制在系统编程中起着重要作用,它可以控制进程对各种系统资源的使用。下面我们将介绍如何获取和设置资源限制。 1.1 获取资源限制 获取资源限制相对简单,以下是一个获取核心文件大小限制的示例代码: …

作者头像 李华
网站建设 2026/7/28 18:08:27

24、多线程编程中的事件驱动、并发、竞争与同步

多线程编程中的事件驱动、并发、竞争与同步 在多线程编程的世界里,存在着诸多概念和挑战,理解这些内容对于开发高效、稳定的程序至关重要。下面将详细介绍事件驱动线程、并发、并行、竞争条件以及同步等关键知识点。 1. 事件驱动线程 事件驱动模式是对每个连接一个线程模式…

作者头像 李华
网站建设 2026/7/30 3:22:56

27、Linux文件系统:扩展属性与目录操作详解

Linux文件系统:扩展属性与目录操作详解 1. 用户命名空间与扩展属性 1.1 用户命名空间概述 用户命名空间是常规进程使用的标准命名空间。内核通过普通文件权限位来控制对该命名空间的访问。读取现有键的值时,进程必须对给定文件具有读取权限;创建新键或向现有键写入值时,…

作者头像 李华