分析图形学示例报告

news2024/11/13 12:14:28

一、实验任务

 

二、主要功能模块

 

三、代码

//自定义坐标系模块
CDC* pDC = GetDC();//获得设备上下文
CRect rect;//定义矩形
GetClientRect(&rect);//获得矩形客户去大小
pDC->SetMapMode(MM_ANISOTROPIC);//自定义坐标系
pDC->SetWindowExt(rect.Width()/4, rect.Height()/4);//设置窗口范围
pDC->SetViewportExt(rect.Width(), -rect.Height());//x 轴水平向右,y 轴垂直向上
pDC->SetViewportOrg(rect.Width() / 2, rect.Height() / 2);//设置屏幕中心为坐标系原点

//创建画笔模块
CPen newPen, * oldPen;//定义画笔
newPen.CreatePen(PS_SOLID, 1, RGB(255, 0, 0));//创建画笔
oldPen = pDC->SelectObject(&newPen);//选中 GDI 对象画笔

//创建透明画刷模块
CBrush * oldBrush;//定义画刷
oldBrush = (CBrush *)pDC->SelectStockObject(5);//选中透明画刷

//绘制圆形模块
pDC->Ellipse(CRect(-25, 25, 25,-25));//绘制图 4 中的圆①
pDC->Ellipse(CRect(51, 11, 73, -11));//绘制图 4 中的圆③
pDC->Ellipse(CRect(43, 19, 81, -19));//绘制图 4 中的圆②

//绘制多边形模块
CPoint p[8];//定义等分点数组
double thta;
thta = 2 * PI / 8;//thta 为圆的等分角
for (int i = 0; i < 8; i++)
{
p[i].x = 37 / 2 * cos(i * thta);
p[i].y = 37 / 2 * sin(i * thta);
}//计算等分点坐标
pDC->Polygon(p, 8);//依次各连接等分点

//绘制圆弧模块
pDC->Arc(CRect(36 - 25, 35 - 25, 36 + 25, 35 + 25), 
CPoint(16,16), CPoint(49, 14));//绘制图 6 中的圆弧①
pDC->Arc(CRect(24 - 94, 65 - 94, 24 + 94, 65 + 94), CPoint(-9, -24), CPoint(72, -17));//绘制图 6 中的圆弧②

四、问题

为了防止先绘制的图形被后绘制图形的画刷覆盖,因此在这里创建透明画刷 啥意思?
CPen newPen, * oldPen;//定义画笔    为什么定义的一个是指针一个不是?
newPen.CreatePen(PS_SOLID, 1, RGB(255, 0, 0));//创建画笔
oldPen = pDC->SelectObject(&newPen);//选中 GDI 对象画笔
CBrush * oldBrush;//定义画刷  默认透明是吗?
oldBrush = (CBrush *)pDC->SelectStockObject(5);//选中透明 画刷  这个5是啥,不应该是oldBrush吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

赛氪技术支持中医药知识大赛,亮相中国国际服务贸易交易会

2024年&#xff0c;全球瞩目的中国国际服务贸易交易会&#xff08;简称“服贸会”&#xff09;在北京盛大召开。作为全球首个国家级、国际性、综合性服务贸易交易会&#xff0c;服贸会不仅是展示世界前沿科技发展水平的高端平台&#xff0c;更是全球科技企业交流互通的桥梁。与…

快手手撕 力扣2487 从链表中移除节点 单调栈 递归

Problem: 2487. 从链表中移除节点 &#x1f468;‍&#x1f3eb; 参考题解 &#x1f496; 递归解法 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* …

VSCode创建C++项目和编译多文件

前言 在刚安装好VSCode后&#xff0c;我简单尝试了仅main.cpp单文件编译代码&#xff0c;没有问题&#xff0c;但是当我尝试多文件编译时&#xff0c;就出现了无法识别cpp文件。 内容 创建项目 首先点击左上角“文件”&#xff1b;在菜单中选择“打开文件夹”&#xff1b;在…

[Python学习日记-20] 彻底搞懂二进制

[Python学习日记-20] 彻底搞懂二进制 简介 二进制的定义 二进制与十进制的转换 简介 在介绍二进制之前我们先讲一个引子&#xff0c;想必大家知道长城吧&#xff0c;长城上面每一个岗哨都会有很多个窗口&#xff0c;哨顶还会放狼烟。那大家知道古时候的中国是如何通信的吗&a…

Telegram Bot 配置指南:使用 Cloudflare Worker 部署

本指南将教您如何创建一个 Telegram Bot 并使用 Cloudflare Worker 部署它。 1. 创建 Telegram Bot 在 Telegram 中搜索 “BotFather”。向 BotFather 发送 /newbot 命令。按照提示设置 bot 的名称和用户名。完成后&#xff0c;您将收到一个 API Token&#xff0c;请妥善保存…

钻机、塔吊等大型工程设备,如何远程维护、实时采集运行数据?

在建筑和工程领域&#xff0c;重型设备的应用不可或缺&#xff0c;无论是在道路与桥梁建设、高层建筑施工&#xff0c;还是在风电、石油等能源项目的开发中&#xff0c;都会用到塔吊、钻机等大型机械工程设备。 随着数字化升级、工业4.0成为行业发展趋势&#xff0c;为了进一步…

N2O(一氧化二氮)的广泛应用与笑气传感器技术

N2O&#xff08;一氧化二氮&#xff09;&#xff0c;俗称“笑气”&#xff0c;因其独特的物理化学性质而广泛应用于多个高科技领域&#xff0c;包括航空航天、汽车加速系统以及环保监测等。工采网小编将深入探讨N2O的广泛应用及其在现代科技中的重要性&#xff0c;并特别介绍两…

我平时是怎么找客户的?今天我的实战技巧,分享给大家

我常用的几个方法 1、利用WhatsApp&#xff0c;找客户的号码&#xff0c;去进行营销 学会这个方法&#xff0c;WhatsApp账号都能被你找到http://mp.weixin.qq.com/s?__bizMzg2MTcxNzAwMg&mid2247498845&idx1&sn039a87d60094cf6c166e2cf5e1f94a69&chksmce106…

千亿级日志系统架构演进

在度假线路类商品系统中&#xff0c;由于商品结构复杂&#xff0c;涉及底层数据表上千张&#xff0c;在日常供应商以及业务维护过程中&#xff0c;每日产生6亿的数据变动记录。这些数据的变动留痕&#xff0c;不但可供录入方查看&#xff0c;也对日常产研的排障起着至关重要的作…

使用 SSM 框架编写的解决方案

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

如何微调(Fine-tuning)大语言模型?

&#xfeff; 导读 本文介绍了微调的基本概念&#xff0c;以及如何对语言模型进行微调。 从 GPT3 到 ChatGPT、从GPT4 到 GitHub copilot的过程&#xff0c;微调在其中扮演了重要角色。什么是微调&#xff08;fine-tuning&#xff09;&#xff1f;微调能解决什么问题&#xf…

Java | Leetcode Java题解之第401题二进制手表

题目&#xff1a; 题解&#xff1a; class Solution {public List<String> readBinaryWatch(int turnedOn) {List<String> ans new ArrayList<String>();for (int i 0; i < 1024; i) {int h i >> 6, m i & 63; // 用位运算取出高 4 位和低…

unity3d入门教程四

unity3d入门教程四 10.1坐标与旋转10.2物体的运动10.3&#xff08;练习&#xff09;掉头飞行11.1向量11.2向量间运算11.3向量夹角11.4物体的指向11.5&#xff08;练习&#xff09;飞向目标12.1屏幕坐标12.2屏幕的边界 10.1坐标与旋转 比如&#xff0c;节点的坐标用 Vector3 类型…

Python 常用模块(二):json模块

目录 1. json 模块介绍1.1 json 模块快用导航1.2 什么是JSON1.2.1 JSON的特点1.2.2 JSON的基本语法1.2.3 JSON数据类型1.2.4 JSON示例1.2.5 JSON使用场景1.2.6 JSON的优缺点1.2.7 JSON和XML的比较 1.3 json 模块 2. dump() 方法 --- 转换为 JSON 格式写入文件2.1 语法参考2.2 实…

电巢科技2024中国光博会圆满收官

2024年9月11日-13日&#xff0c;备受瞩目的第二十五届中国国际光电博览会(CIOE中国光博会)在中国深圳国际会展中心圆满闭幕。 电巢科技以其前沿的Ecosmos元宇宙产品体验区&#xff0c;及联袂中国光博会打造的三大特色栏目——《逛展最前线》《光引未来大咖说》以及《智能消费电…

【Linux】查看操作系统开机时初始化的驱动模块列表的一个方法

这个方法是摸索出来的&#xff0c;也不一定对&#xff1a; 1、驱动层module_init(module_init_function)作为模块初始化&#xff0c;并且提供模块内部初始化的函数名&#xff1b; 2、找到所有驱动目录drivers下所有module_init(module_init_function)&#xff0c;在内核6.9.0…

探索 Python 代码重构的魔法:rope 库的神秘力量

文章目录 探索 Python 代码重构的魔法&#xff1a;rope 库的神秘力量背景&#xff1a;为何选择 rope&#xff1f;什么是 rope&#xff1f;如何安装 rope&#xff1f;简单的库函数使用方法场景应用常见问题与解决方案总结 探索 Python 代码重构的魔法&#xff1a;rope 库的神秘力…

影视直冲?对接卡券特权充值接口对于用户来说有什么优势?

对用户来说有哪些优势&#xff1a; 便利性&#xff1a;用户可以直接在应用程序或网站上充值和使用卡券&#xff0c;无需通过多个平台或渠道&#xff0c;提高了用户体验。实时性&#xff1a;卡券充值和使用状态可以实时更新&#xff0c;用户可以立即看到余额变化和卡券状态。安…

建造者模式:灵活构建复杂对象的利器

在软件开发中&#xff0c;创建一个复杂对象通常需要多个步骤和参数&#xff0c;直接在客户端代码中进行这些操作不仅繁琐&#xff0c;而且难以维护。建造者模式&#xff08;Builder Pattern&#xff09;提供了一种优雅的解决方案&#xff0c;使得对象的创建过程更加清晰、灵活和…

以最小成本实现最大销售:《稻盛和夫的实学:经营与会计》中的企业经营哲学

在《经营与会计》中稻盛和夫提出&#xff0c;会计是现代企业经营的中枢&#xff0c;经营者必须掌握企业活动的真实状态&#xff0c;才能带领企业长期持续的发展。 经营企业要以现金为基础&#xff0c;把握赚的钱在哪里&#xff0c;以什么形式存在&#xff0c;根据手上确凿无疑…