放大镜_教程 | Origin+PPT绘制曲线的放大镜

本文介绍了如何利用PowerPoint(PPT)的裁剪工具,制作Origin软件绘图中的放大镜效果,以清晰展示曲线的局部细节。通过在Origin绘制图形,复制并放大局部,然后在PPT中裁剪成圆形,并设置边框,最后在Origin中添加标记,完成放大镜的制作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

教程

ee4ead0e7e86bcd2766e73279aa8acf9.png

在绘图中,经常遇到几条曲线非常接近,图例通常难以区分,这就需要将局部放大。通常的做法是插图,插图仍然保留坐标轴,需要占据空间角落,而且显得整体图片繁杂。

电子科技大学的黄博士提出:利用放大镜对曲线局部放大,代替传统插图。这个想法非常新颖。

一些出彩的Origin绘图往往需要借助其他软件(如CDR或AI)修图或增加其他图形效果,但是谭编提醒大家,PPT其实是一个非常不错的绘图软件,有人将PPT玩坏了(例如:张老湿科研作图)。谭编提倡采用熟悉的一两个软件解决绘图问题,今天,谭编利用PPT的裁剪工具制作Origin绘图的放大镜效果。

1绘制两张Origin图

首先,我们利用Origin绘制一张图,然后复制一个绘图,在复制图中,点击左边栏的放大镜,拖选局部曲线,实现放大。

f5dbbf0ee3cd91f4828e068d68cdb475.gif

然后,选择放大的图,按Ctrl+J复制(copy page),在PPT中选择性粘贴为“图片(增强型图元文件)”

2f2a5150d7b190622cec223e2f0e8c5a.gif

2在PPT中圆形剪辑

在PPT中,调整刚才

<think>我们分析这段代码的功能:它设置了文本颜色和背景颜色,然后在三个位置输出了文本标签。 具体来说: 1. 设置文本颜色为白色,背景颜色为黑色。 2. 在X轴的末端附近(坐标(u4_t_Draw_originX + u4_t_Draw_axisLength - AXIS_LABEL_OFFSET, u4_t_Draw_originY + AXIS_LABEL_OFFSET))输出"X"标签。 3. 在Y轴的顶端附近(坐标(u4_t_Draw_originX - AXIS_LABEL_OFFSET, u4_t_Draw_originY - u4_t_Draw_axisLength + AXIS_LABEL_Y_OFFSET))输出"Y"标签。 4. 在原点附近(坐标(u4_t_Draw_originX - ORIGIN_LABEL_OFFSET, u4_t_Draw_originY + ORIGIN_LABEL_OFFSET/2))输出"O"标签(代表原点)。 注意:这里使用了几个偏移量常量(AXIS_LABEL_OFFSET, AXIS_LABEL_Y_OFFSET, ORIGIN_LABEL_OFFSET)来控制标签的位置,以避免标签与坐标轴重叠。 下面详细解释每个部分:</think>### 坐标系标签绘制代码解析 #### 代码功能说明 这段代码用于在坐标系中绘制**坐标轴标签**,包含三个关键部分: 1. 设置文本颜色和背景色 2. 绘制X轴标签 3. 绘制Y轴标签 4. 绘制原点标签 #### 关键参数说明 | 参数 | 类型 | 说明 | |------|------|------| | `AXIS_LABEL_OFFSET` | 宏定义 | 坐标轴标签偏移量(像素) | | `AXIS_LABEL_Y_OFFSET` | 宏定义 | Y轴标签特殊偏移量 | | `ORIGIN_LABEL_OFFSET` | 宏定义 | 原点标签偏移量 | | `u4_t_Draw_originX/Y` | UINT | 坐标系原点坐标 | | `u4_t_Draw_axisLength` | UINT | 坐标轴长度 | --- ### 代码逐行解析 #### 1. 文本属性设置 ```c SetTextColor(hdc, COLOR_WHITE); // 设置文本颜色为白色 SetBkColor(hdc, COLOR_BLACK); // 设置文本背景色为黑色 ``` - **作用**:确保标签在任意背景色下都清晰可见 - **对比效果**:白字黑底提供最佳可读性 - **适用场景**:适合在彩色图表或网格背景下使用 #### 2. X轴标签绘制 ```c TextOut(hdc, u4_t_Draw_originX + u4_t_Draw_axisLength - AXIS_LABEL_OFFSET, u4_t_Draw_originY + AXIS_LABEL_OFFSET, L"X", ONE); ``` - **位置计算**: - X坐标:`原点X + 轴长 - 偏移量`(位于X轴右端偏左位置) - Y坐标:`原点Y + 偏移量`(位于X轴下方) - **视觉定位**:避免与坐标轴重叠,位于X轴箭头下方 - **典型值**:若`AXIS_LABEL_OFFSET=20`,标签位于轴末端左侧20像素,下方20像素 #### 3. Y轴标签绘制 ```c TextOut(hdc, u4_t_Draw_originX - AXIS_LABEL_OFFSET, u4_t_Draw_originY - u4_t_Draw_axisLength + AXIS_LABEL_Y_OFFSET, L"Y", ONE); ``` - **位置计算**: - X坐标:`原点X - 偏移量`(位于Y轴左侧) - Y坐标:`原点Y - 轴长 + Y偏移量`(位于Y轴顶端偏下位置) - **特殊处理**:使用`AXIS_LABEL_Y_OFFSET`避免与Y轴箭头重叠 - **典型值**:若`AXIS_LABEL_Y_OFFSET=15`,标签位于轴顶端下方15像素 #### 4. 原点标签绘制 ```c TextOut(hdc, u4_t_Draw_originX - ORIGIN_LABEL_OFFSET, u4_t_Draw_originY + ORIGIN_LABEL_OFFSET / 2, L"O", ONE); ``` - **位置计算**: - X坐标:`原点X - 偏移量`(位于原点左侧) - Y坐标:`原点Y + 偏移量/2`(位于原点稍下方) - **设计意图**:"O"代表原点(Origin),位置偏移避免遮盖坐标轴交点 - **典型值**:若`ORIGIN_LABEL_OFFSET=10`,标签位于原点左侧10像素,下方5像素 --- ### 标签位置示意图 ```plaintext Y轴 ↑ Y(标签) │ / \ │ / \ │ / \ ├─O───────→ X轴 │ 标签 \ │ \ │ X(标签) ``` --- ### 设计要点与优化建议 1. **偏移量选择原则**: - 一般取字体高度的1.5-2倍 - 示例:`#define AXIS_LABEL_OFFSET (tm.tmHeight * 1.8)` 2. **动态字体度量**: ```c TEXTMETRIC tm; GetTextMetrics(hdc, &tm); int offset = tm.tmHeight * 2; // 根据实际字体高度计算偏移 ``` 3. **多语言支持**: ```c // 支持本地化标签 const wchar_t* xLabel = L"X轴"; TextOut(hdc, xPos, yPos, xLabel, wcslen(xLabel)); ``` 4. **抗锯齿处理**: ```c SetTextCharacterExtra(hdc, 1); // 增加字符间距 SetBkMode(hdc, TRANSPARENT); // 透明背景 ``` 5. **高DPI适配**: ```c int dpi = GetDpiForWindow(hWnd); int offset = MulDiv(20, dpi, 96); // 根据DPI缩放偏移量 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值