当前位置: 首页 > news >正文

039集——渐变色之:CAD中画彩虹()(CAD—C#二次开发入门)

(来左边儿 跟我一起画个龙,在你右边儿 画一道彩虹    ~~~~~~~~~~~            

效果如下:

 

namespace AcTools
{public class Class1{public Wform.Timer timer;//定时器需建在类下面public static DateTime startTime;[CommandMethod("xx")]public void Demo(){红到黄(255, 1000.0);黄到绿(255, 1000.0 + 255 * 1);绿到蓝(255, 1000.0 + 255 * 2);蓝到紫(255, 1000.0 + 255 * 3);timer = new Wform.Timer();timer.Interval = 2500;//相当于多久更新一下屏幕timer.Tick += Timer_Tick;//定时器关联事件;startTime = DateTime.Now;timer.Start(); //红到紫(255, 1000.0 + 255 * 4);}public void Timer_Tick(object sender, EventArgs e)//一定时间间隔触发的事件{TimeSpan elapsed = DateTime.Now - startTime;红到紫(255, 1000.0 + 255 * 4);if (elapsed.TotalSeconds > 10){timer.Stop();timer.Dispose();Z.ed.WriteMessage("over\n");}Z.ed.UpdateScreen();}public void 红到紫(double num, double radius){//红到紫 255, 0 ,0 ---- 255  ,0, 255List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius + i,Color = (i == 0) ? Color.FromRgb(255, 0, 0) : Color.FromRgb(255, 0,(byte)(0 + i / num * 255) ),};circles.Add(circle);}arcs = Halfcircle(circles);for (int i = 0; i < 5; i++){List<Entity> ents = arcs.Cast<Entity>().ToList();//list类型强转Flash flash = new Flash(ents );//创建瞬态flash.FlashUpdate(ents);//更新瞬态//Z.ed.GetPoint("");//foreach (Entity item in ents){item.ChangeEntityColor(i);}flash.FlashUpdate(ents);//更新瞬态Thread.Sleep(500);Z.ed.UpdateScreen();flash.FlashlistErase();//删除瞬态}//Z.db.AddEntityToModeSpace(arcs.ToArray());}public void 红到黄(double num,double radius){//红到黄 255 0 0 - 255 255 0List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius +  i ,Color = (i ==0)? Color.FromRgb(255, 0, 0) : Color.FromRgb(255, (byte)(0 + i/ num* 255), 0),};circles.Add(circle);}arcs = Halfcircle(circles);Z.db.AddEntityToModeSpace(arcs.ToArray());}  public void 黄到绿(double num, double radius){//黄到绿255 ,255 ,0 -  0, 255,0 List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius + i,Color = (i == 1) ? Color.FromRgb(255, 255, 0) : Color.FromRgb((byte)(255 - i / num * 255), 255,0),};circles.Add(circle);}arcs = Halfcircle(circles);Z.db.AddEntityToModeSpace(arcs.ToArray());}public void 绿到蓝(double num, double radius){//绿到蓝0, 255,0  ----   0 ,0 ,255List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius + i,Color = (i == 1) ? Color.FromRgb(0,255, 255 ) : Color.FromRgb(0,(byte)(255 - i / num * 255), (byte)(0 + i  / num * 255)),};circles.Add(circle);}arcs = Halfcircle(circles);Z.db.AddEntityToModeSpace(arcs.ToArray());}public void 蓝到紫(double num, double radius){//蓝到紫 0 ,0 ,255 - 255, 0, 255 List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius +  i,Color = (i == 1) ? Color.FromRgb(0, 0, 255) : Color.FromRgb((byte)(0 + i / num * 255), 0, 255),};circles.Add(circle);}arcs = Halfcircle(circles);Z.db.AddEntityToModeSpace(arcs.ToArray());}public static List<Arc> Halfcircle(List<Circle> circles){ List<Arc> arcs = new List<Arc>();//画弧if (!( circles is null )&& circles.Count >0){foreach (Circle circle in circles){arcs.Add(new Arc() { Center = circle.Center,Radius = circle .Radius,StartAngle = 0,Color = circle .Color, EndAngle = Math.PI });}}return arcs;}}
}

 

namespace AcTools
{public class Class1{[CommandMethod("xx")]public void Demo(){红到黄(255, 1000.0);黄到绿(255, 1000.0 + 255 * 1);绿到蓝(255, 1000.0 + 255 * 2);蓝到紫(255, 1000.0 + 255 * 3);}public void 红到紫(double num, double radius){//红到紫 255, 0 ,0 ---- 255  ,0, 255List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius + i,Color = (i == 0) ? Color.FromRgb(255, 0, 0) : Color.FromRgb(255, 0,(byte)(0 + i / num * 255) ),};circles.Add(circle);}arcs = Halfcircle(circles);Z.db.AddEntityToModeSpace(arcs.ToArray());}public void 红到黄(double num,double radius){//红到黄 255 0 0 - 255 255 0List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius +  i ,Color = (i ==0)? Color.FromRgb(255, 0, 0) : Color.FromRgb(255, (byte)(0 + i/ num* 255), 0),};circles.Add(circle);}arcs = Halfcircle(circles);Z.db.AddEntityToModeSpace(arcs.ToArray());}  public void 黄到绿(double num, double radius){//黄到绿255 ,255 ,0 -  0, 255,0 List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius + i,Color = (i == 1) ? Color.FromRgb(255, 255, 0) : Color.FromRgb((byte)(255 - i / num * 255), 255,0),};circles.Add(circle);}arcs = Halfcircle(circles);Z.db.AddEntityToModeSpace(arcs.ToArray());}public void 绿到蓝(double num, double radius){//绿到蓝0, 255,0  ----   0 ,0 ,255List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius + i,Color = (i == 1) ? Color.FromRgb(0,255, 255 ) : Color.FromRgb(0,(byte)(255 - i / num * 255), (byte)(0 + i  / num * 255)),};circles.Add(circle);}arcs = Halfcircle(circles);Z.db.AddEntityToModeSpace(arcs.ToArray());}public void 蓝到紫(double num, double radius){//蓝到紫 0 ,0 ,255 - 255, 0, 255 List<Circle> circles = new List<Circle>();//画圆List<Arc> arcs = new List<Arc>();//画弧for (int i = 1; i <= num; i++){Circle circle = new Circle(){Center = new Point3d(500, 1000, 0),Radius = radius +  i,Color = (i == 1) ? Color.FromRgb(0, 0, 255) : Color.FromRgb((byte)(0 + i / num * 255), 0, 255),};circles.Add(circle);}arcs = Halfcircle(circles);Z.db.AddEntityToModeSpace(arcs.ToArray());}public static List<Arc> Halfcircle(List<Circle> circles){ List<Arc> arcs = new List<Arc>();//画弧if (!( circles is null )&& circles.Count >0){foreach (Circle circle in circles){arcs.Add(new Arc() { Center = circle.Center,Radius = circle .Radius,StartAngle = 0,Color = circle .Color, EndAngle = Math.PI });}}return arcs;}}
}

 

      public static ObjectId[] AddEntityToModeSpace(this Database db, params Entity[] ent){// 声明ObjectId 用于返回ObjectId[] entId = new ObjectId[ent.Length];// 开启事务处理using (DocumentLock acLckDoc = Z.doc.LockDocument()){using (Transaction trans = db.TransactionManager.StartTransaction()){// 打开块表BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);// 打开块表记录BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);for (int i = 0; i < ent.Length; i++){// 将图形添加到块表记录if (ent[i].IsNewObject){entId[i] = btr.AppendEntity(ent[i]);// 更新数据信息trans.AddNewlyCreatedDBObject(ent[i], true);}// Z.ed.Redraw(ent[i]);//动态显示}// 提交事务trans.Commit();}}return entId;}public static Database db {get { return  HostApplicationServices.WorkingDatabase; }}   

 

  Arc arc = new Arc()
 {
     Center  = new Point3d(500,500+i,0),
     Radius = 500,StartAngle = Math.PI*0.1+i*0.01,
     EndAngle=Math.PI*0.9+i * 0.01,
     //StartPoint = new Point3d(0, i, 0),
     //EndPoint = new Point3d(1000, i, 0),
     Color = Color.FromRgb(255, (byte)i, 0),
 };

 public void xx(){//红到黄 255 0 0 - 255 255 0List<Line> lines = new List<Line>();//画线for (int i = 0; i < 255; i++){Line line = new Line() { StartPoint = new Point3d(0,i,0),EndPoint = new Point3d(1000,i, 0),Color = Color .FromRgb(255, (byte)i, 0),};    lines.Add(line);}Z.db.AddEntityToModeSpace(lines.ToArray());List<Arc> arcs = new List<Arc>();//画圆弧for (int i = 0; i < 255; i++){Arc arc = new Arc(){Center  = new Point3d(500,1000+i,0),Radius = 500,StartAngle = Math.PI*0.1-i*0.01,EndAngle=Math.PI*0.9+i * 0.01,//StartPoint = new Point3d(0, i, 0),//EndPoint = new Point3d(1000, i, 0),Color = Color.FromRgb(255, (byte)i, 0),};arcs.Add(arc);}Z.db.AddEntityToModeSpace(arcs.ToArray());}

相关文章:

039集——渐变色之:CAD中画彩虹()(CAD—C#二次开发入门)

&#xff08;来左边儿 跟我一起画个龙&#xff0c;在你右边儿 画一道彩虹 ~~~~~~~~~~~ &#xff09; 效果如下&#xff1a; namespace AcTools {public class Class1{public Wform.Timer timer;//定时器需建在类下面public static DateTime startTime;[CommandM…...

如何将 GitHub 私有仓库(private)转换为公共仓库(public)

文章目录 如何将 GitHub 私有仓库转换为公共仓库步骤 1: 登录 GitHub步骤 2: 导航到目标仓库步骤 3: 访问仓库设置步骤 4: 更改仓库可见性步骤 5: 确认更改步骤 6: 验证更改注意事项 如何将 GitHub 私有仓库转换为公共仓库 在软件开发领域&#xff0c;GitHub 是一个广受欢迎的…...

C++11 右值引用

目录 左值 右值 左值引用与右值引用比较 左值引用总结&#xff1a; 右值引用总结&#xff1a; 左值引用的使用场景&#xff1a; 引用传参和做返回值都可以提高效率(减少拷贝) 左值引用的短板&#xff1a; 右值引用和移动语义解决上述问题&#xff1a; 下面就是有移动…...

WPS表格学习计划与策略

一、学习目标 掌握WPS表格的基本操作:包括新建、打开、保存工作簿,单元格的编辑与格式化,数据的输入与验证等。熟练运用WPS表格的数据处理功能:包括数据排序、筛选、分类汇总,以及使用公式和函数进行计算和分析。学会制作图表与数据可视化:掌握不同类型图表(如柱状图、折…...

Android 引入 proto 项目及使用方法

Proto&#xff08;Protocol Buffers&#xff09;是Google开发的一种语言无关、平台无关的序列化结构数据的方法&#xff0c;它类似于JSON和XML&#xff0c;但相对于XML而言更小&#xff0c;相对于JSON而言解析更快&#xff0c;支持多语言。以下是将Proto引入Android项目的方法及…...

VSOMEIP主要流程的时序

请求服务: client应用&#xff1a; ​ application_impl::request_service ​ routing_manager_client::request_service (老版本是routing_manager_proxy) ​ routing_manager_client::send_request_services ​ protocol::request_service_command its_command; // 创建…...

右值引用和移动语义:

C 右值引用和移动语义详解 在 C 的发展历程中&#xff0c;右值引用和移动语义的引入带来了显著的性能提升和编程灵活性。本文将深入探讨右值引用和移动语义的概念、用法以及重要性。 一、引言 C 作为一门高效的编程语言&#xff0c;一直在不断演进以满足现代软件编程的需求。…...

经纬高LLA转地心地固ECEF坐标,公式,代码

经纬高转地心地固的目的 坐标系转换是gis或者slam系统常见操作。GNSS获取的一般是经纬高&#xff0c;经纬高在slam系统里无法应用&#xff0c;slam系统一般是xyz互相垂直的笛卡尔坐标系&#xff0c;所以需要把GNSS的经纬高转到直角坐标系地心地固ECEF或者高斯投影GKP。 划重点…...

VUE前端实现天爱滑块验证码--详细教程

第一步&#xff1a; Git地址&#xff1a;tianai-captcha-demo: 滑块验证码demo 找到目录 src/main/resources/static,拷贝 static 并改名为 tac 即可。 第二步&#xff1a; 将改为 tac 的文件&#xff0c;放进项目根目录中&#xff0c;如下图&#xff1a; 第三步&#xff1…...

【链表】【删除节点】【刷题笔记】【灵神题单】

237.删除链表的节点 链表删除节点的本质是不用删除&#xff0c;只需要操作指针&#xff0c;跳过需要删除的节点&#xff0c;指向下下一个节点即可&#xff01; 删除某个节点&#xff0c;但是不知道这个节点的前一个节点&#xff0c;也不知道头节点&#xff01;摘自力扣评论区…...

springboot339javaweb的新能源充电系统pf(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;新能源充电系统的设计与实现 摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解…...

【嵌入式——QT】QT制作安装包

第一步 QT程序写好之后&#xff0c;编译release版本 第二步 拿到release生成的.exe文件 第三步 新建文件夹deploy 第四步 将.exe文件复制到deploy目录下 第五步 在该目录下输入cmd指令&#xff0c;回车 第六步 在打开的命令窗口下输入 windeployqt TegNetCom_1.0.…...

python的文件操作练习

文件操作&#xff1a;成绩统计 有一个文件grades.txt&#xff0c;文件内容是每行一个学生的成绩&#xff08;格式&#xff1a;姓名,成绩&#xff09;。要求&#xff1a; 读取文件内容&#xff0c;统计所有学生的平均成绩&#xff1b; 将不及格&#xff08;<60分&#xff09…...

jQuery九宫格抽奖,php处理抽奖信息

功能介绍 jQuery九宫格抽奖是一种基于jQuery库的前端抽奖效果。通过九宫格的形式展示抽奖项&#xff0c;用户点击抽奖按钮后&#xff0c;九宫格开始旋转&#xff0c;最终停在一个随机位置上&#xff0c;此位置对应的抽奖项为用户的中奖结果。 本文实现九宫格的步骤为&#xf…...

2024年一级建造师考试成绩,即将公布!

一级建造师考试成绩一般在考试结束后3个月左右的时间公布&#xff01; 根据官方通知&#xff0c;重庆、江苏、青海、江西、云南、湖南、福建、北京、山西、黑龙江等地在今年一建报名通知里提到&#xff1a;2024年一级建造师考试成绩预计于2024年12月上旬公布。考生可在这个时间…...

M4V 视频是一种什么格式?如何把 M4V 转为 MP4 格式?

M4V 是一种视频文件格式&#xff0c;主要由苹果公司用于其产品和服务中&#xff0c;如 iTunes Store 上的电影和电视节目。这种格式可以包含受版权保护的内容&#xff0c;并且通常与苹果的 DRM&#xff08;数字版权管理&#xff09;技术结合使用&#xff0c;以限制内容的复制和…...

Leetcode 每日一题 104.二叉树的最大深度

目录 问题描述 示例 示例 1&#xff1a; 示例 2&#xff1a; 约束条件 题解 方法一&#xff1a;广度优先搜索&#xff08;BFS&#xff09; 步骤 代码实现 方法二&#xff1a;递归 步骤 代码实现 结论 问题描述 给定一个二叉树 root&#xff0c;我们需要返回其最大…...

文件上传漏洞:你的网站安全吗?

文章目录 文件上传漏洞攻击方式&#xff1a;0x01绕过前端限制0x02黑名单绕过1.特殊解析后缀绕过2..htaccess解析绕过3.大小写绕过4.点绕过5.空格绕过6.::$DATA绕过7.配合中间件解析漏洞8.双后缀名绕过9.短标签绕过 0x03白名单绕过1.MIME绕过(Content-Type绕过)2.%00截断3.0x00截…...

AWS账号提额

Lightsail提额 控制台右上角&#xff0c;用户名点开&#xff0c;选择Service Quotas 在导航栏中AWS服务中找到lightsail点进去 在搜索框搜索instance找到相应的实例类型申请配额 4.根据自己的需求选择要提额的地区 5.根据需求来提升配额数量,提升小额配额等大约1小时生效 Ligh…...

电子应用设计方案-29:智能云炒菜系统方案设计

智能云炒菜系统方案设计 一、系统概述 本智能云炒菜系统旨在为用户提供便捷、高效、个性化的烹饪体验&#xff0c;结合云技术实现远程控制、食谱分享、智能烹饪流程优化等功能。 二、系统组成 1. 炒菜锅主体 - 高品质不粘锅内胆&#xff0c;易于清洁和维护。 - 加热装置&#x…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...