news 2026/9/12 13:22:57

与 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/9/11 6:23:53

21、Linux系统中的高级进程管理

Linux系统中的高级进程管理 1. I/O优先级 在Linux系统中,除了调度优先级之外,进程还可以指定I/O优先级。这个值会影响进程I/O请求的相对优先级,内核的I/O调度器会优先处理来自I/O优先级较高的进程的请求。 默认情况下,I/O调度器使用进程的 nice 值来确定I/O优先级,因…

作者头像 李华
网站建设 2026/9/10 21:00:14

22、实时系统与资源限制相关技术解析

实时系统与资源限制相关技术解析 1. 实时调度策略设置 在实时系统中,调度策略的设置至关重要。可以使用 sched_setscheduler() 函数将调用进程的调度策略设置为具有静态优先级的轮询调度(Round-Robin)。示例代码如下: struct sched_param sp = { .sched_priority = 1…

作者头像 李华
网站建设 2026/9/11 2:44:43

Beyond Compare 5终极激活方案:本地生成永久授权密钥

Beyond Compare 5终极激活方案&#xff1a;本地生成永久授权密钥 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 作为文件对比和代码审查的专业工具&#xff0c;Beyond Compare 5的功能确实令人…

作者头像 李华
网站建设 2026/9/12 13:36:33

3分钟获取Beyond Compare 5永久授权的终极指南

3分钟获取Beyond Compare 5永久授权的终极指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的授权限制而困扰吗&#xff1f;这款被誉为文件对比神器的软件&#xff0c…

作者头像 李华
网站建设 2026/9/13 3:48:53

34、Linux 内存管理与信号机制详解

Linux 内存管理与信号机制详解 1. 内存锁定对系统性能的影响 改变内核的分页行为可能会对整体系统性能产生负面影响。当一个应用程序的页面被锁定到内存中时,其确定性或安全性可能会提高,但这会导致另一个应用程序的页面被换出。内核通常会选择最优的页面进行换出,即未来最…

作者头像 李华
网站建设 2026/9/12 15:57:29

35、信号处理基础与实践

信号处理基础与实践 1. 特殊信号介绍 SIGVTALRM :当使用 ITIMER_VIRTUAL 标志创建的定时器到期时, setitimer() 函数会发送此信号。 SIGWINCH :当终端窗口大小改变时,内核会为前台进程组中的所有进程发出此信号。默认情况下,进程会忽略该信号,但如果进程知晓其终…

作者头像 李华