C++根据三点求平行四边形的平分阵列

C++根据三点求平行四边形的平分阵列

如下图,已知ABC三个点,且ABCD是平行四边形,求各个点的(阵列)的坐标
在这里插入图片描述


void OnBnClickedButtonCreatematrix3point()
{//通过前面三点,计算出第四点POINTF64 t_pointMiddle;//对角线交点t_pointMiddle.x = (pMain->m_NodeMatrix.m_point_ld.x+pMain->m_NodeMatrix.m_point_ru.x)/2;t_pointMiddle.y = (pMain->m_NodeMatrix.m_point_ld.y+pMain->m_NodeMatrix.m_point_ru.y)/2;POINTF64 t_pointRd;//右下角第四点坐标t_pointRd.x = 2*t_pointMiddle.x-pMain->m_NodeMatrix.m_point_lu.x;t_pointRd.y = 2*t_pointMiddle.y-pMain->m_NodeMatrix.m_point_lu.y;//到此四点坐标全部获取到POINTF64 vec_upSide;//上边向量vec_upSide.x = pMain->m_NodeMatrix.m_point_ru.x - pMain->m_NodeMatrix.m_point_lu.x;vec_upSide.y = pMain->m_NodeMatrix.m_point_ru.y - pMain->m_NodeMatrix.m_point_lu.y;POINTF64 vec_downSide;//下边向量vec_downSide.x = t_pointRd.x - pMain->m_NodeMatrix.m_point_ld.x;vec_downSide.y = t_pointRd.y - pMain->m_NodeMatrix.m_point_ld.y;POINTF64 vec_upUnit;//求上边单位向量,整体向量除以列数vec_upUnit.x = vec_upSide.x/(pMain->m_NodeInfo.m_s32Col-1);vec_upUnit.y = vec_upSide.y/(pMain->m_NodeInfo.m_s32Col-1);POINTF64 vec_downUnit;//求下边单位向量,整体向量除以列数vec_downUnit.x = vec_downSide.x/(pMain->m_NodeInfo.m_s32Col-1);vec_downUnit.y = vec_downSide.y/(pMain->m_NodeInfo.m_s32Col-1);vector<POINTF> vec1;vector<POINTF> vec2;vector<POINTF> vecdst;//开始获取上\下边的所有点for(int i=0;i<pMain->m_NodeInfo.m_s32Col;++i){POINTF tep;tep.x = i*vec_upUnit.x+pMain->m_NodeMatrix.m_point_lu.x;tep.y = i*vec_upUnit.y+pMain->m_NodeMatrix.m_point_lu.y;vec1.push_back(tep);POINTF tep1;tep1.x = i*vec_downUnit.x+pMain->m_NodeMatrix.m_point_ld.x;tep1.y = i*vec_downUnit.y+pMain->m_NodeMatrix.m_point_ld.y;vec2.push_back(tep1);}//1\先获取上下两边向量,求平均点pMain->m_dstPos.clear();for(int i=0;i<pMain->m_NodeInfo.m_s32Col;++i){if(i%2==0){vecdst.push_back(vec1[i]);vecdst.push_back(vec2[i]);}else{vecdst.push_back(vec2[i]);vecdst.push_back(vec1[i]);}}int m=0;if(pMain->Databuf!=NULL){delete pMain->Databuf;pMain->Databuf =NULL;}pMain->Databuf = new T2DCompareData[pMain->m_NodeInfo.m_s32Col*pMain->m_NodeInfo.m_s32Row];if(pMain->Databuf==NULL){AfxMessageBox(_T("动态申请内存空间失败,请联系工程师"));return;}bool t_bturn = true;for(int i=0;i<vecdst.size()-1;){POINTF vec_Unit;vec_Unit.x = (vecdst[i+1].x-vecdst[i].x)/(pMain->m_NodeInfo.m_s32Row-1);vec_Unit.y = (vecdst[i+1].y-vecdst[i].y)/(pMain->m_NodeInfo.m_s32Row-1);if(t_bturn==true)//从上到下{for(int j=0;j<pMain->m_NodeInfo.m_s32Row;++j)//起始点+单位向量{T2DCompareData tep;tep.px= vecdst[i].x+vec_Unit.x*j;tep.py= vecdst[i].y+vec_Unit.y*j;pMain->Databuf[m++] = tep;pMain->m_dstPos.push_back(tep);}t_bturn = !t_bturn;}else//从下到上{for(int j=0;j<pMain->m_NodeInfo.m_s32Row;++j)//起始点+单位向量{T2DCompareData tep;tep.px= vecdst[i].x+vec_Unit.x*j;tep.py= vecdst[i].y+vec_Unit.y*j;pMain->Databuf[m++] = tep;pMain->m_dstPos.push_back(tep);}t_bturn = !t_bturn;}i+=2;}//开始保存点阵的中心点参数,下次开机直接取用SaveMatrix();
}

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

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

相关文章

iOS常见崩溃简介

1. 崩溃 多指在移动设备&#xff08;如iOS、Android设备&#xff09;中或不可移动设备&#xff08;如:Windows、Linux等设备&#xff09;&#xff0c; 在打开或使用应用程序时出现的突然退出中断的情况&#xff08;类似于Windows的应用程序崩溃&#xff09;。 多表现为&#…

关于IP-Adapter的十几个模型,到底是干啥用的?

&#x1f3a0;背景介绍 IP-Adapter的一系列模型在stable diffusion的实际应用中&#xff0c;越来越被频繁的使用到&#xff0c;用于“换脸”或者“保证角色的一致性”&#xff0c;但是很多朋友在安装或者使用别人的工作流的时候&#xff0c;经常会遇到各种各样的问题&#xff…

考研数二要掌握的初中知识点

文章目录 一、整式1. 同底数幂的乘法2. 幂的乘方3. 积的乘方4. 乘法分配律5. 同底数幂的除法 二、分式1. 分式的乘法2. 分式的除法3. 分式的乘方4. 分式的最简公分母5. 负指数幂6. 比例变形7. 分离常数法 三、二次根式0. 平方根和算数平方根的重要概念1. 乘方去根号2. 二次根式…

118. 杨辉三角(Java)

这里写目录标题 题目描述&#xff1a;输入:输出:代码实现&#xff1a; 题目描述&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 输入: numRows 5输出: [[1],[1,1],[1…

考研数学|武忠祥各阶段搭配用书汇总

看到有人问武忠祥老师&#xff0c;不请自来 武忠祥老师&#xff0c;绝对的宝藏老师&#xff0c;我在考研强化阶段的时候听过他的强化课程&#xff0c;听完之后&#xff0c;很多问题都想通了&#xff0c;所以&#xff0c;如果有人想问武忠祥老师行不行&#xff0c;那我就一个字…

19. UE5 RPG使用GameplayEffect的Attribute Based Modifiers

前几篇文章我也说了GE的基础使用&#xff0c;但是&#xff0c;对一些属性的应用没有述说&#xff0c;后续&#xff0c;我将一点一点的将它们如何使用书写下来。 这一篇&#xff0c;主要就讲解一下Attribute Based Modifiers使用&#xff0c;先说一下它的应用场景&#xff0c;一…

数据结构——栈和队列的表示与实现详解

目录 1.栈的定义与特点 2.队列的定义与特点 3.案例引入 4.栈的表示和操作的实现 1.顺序栈的表示 代码示例&#xff1a; 2.顺序栈的初始化 代码示例&#xff1a; 3.判断栈是否为空 代码示例&#xff1a; 4.求顺序栈长度 代码示例&#xff1a; 5.清空顺序栈 …

Spring Boot中application配置文件的生效顺序

Spring Boot的一个重要特性就是它的自动配置&#xff0c;这一特性在很大程度上依赖于名称为application的配置文件。本文将详细介绍在Spring Boot中&#xff0c;这些配置文件的加载顺序以及每份文件的应用范围。 文章目录 配置文件的种类配置文件的加载顺序配置文件的环境切换 …

操作系统内功篇:硬件结构之CPU缓存一致性

一 CPU Cache的数据写入 1.1 CPU Cache的结构 是由很多个Cache Line组成的&#xff0c;CPU Line是CPU从内存读取的基本单位&#xff0c;CPU Line是由多个标志数据块组成。 1.2 CPU Cache数据的写入 数据不仅仅只有读取&#xff0c;还有数据的写入&#xff0c;写入数据也是先…

【智能算法】斑鬣狗优化算法(SHO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过。 3.代码实现4.参考文献 1.背景 2017年&#xff0c;Dhiman等人受到斑鬣狗自然狩猎行为启发&#xff0c;提出了斑鬣狗优化算法(Spotted Hyena Optimizer, SHO)。 2.算法原理 2.1算法思想 SHO将斑鬣狗狩猎行为分为围捕-狩猎-进攻三…

JVM实战篇

内存调优 内存溢出和内存泄漏 内存泄漏&#xff1a;在java中如果不再使用一个对象&#xff0c;但是该对象依然在GC ROOT的引用链上&#xff0c;这个对象就不会被垃圾回收器回收。 内存泄漏绝大多数情况都是由堆内存泄漏引起的&#xff0c;所以后续没有特别说明则讨论的都是堆…

matplotlib画堆叠、并列直方图

在用 matplotlib.pyplot.hist 画分布图时&#xff0c;若总分布由几个分量组成&#xff08;如高斯混合&#xff09;&#xff0c;想用不同颜色标识出来&#xff0c;方便看到各分量占比&#xff0c;参考 [1]。 效果&#xff1a; 分布由两个分量&#xff08;x、y&#xff09;组成…

二,几何相交---4,BO算法---(4)可能的三种情况

从上到下&#xff0c;扫描线经过有三种情况&#xff1a; 第一种情况&#xff0c;加入线段e的左端点&#xff0c;那么原来的状态pred->suc变成pred->e->suc 第二种情况&#xff0c;经过线段e的右端点&#xff0c;状态pred->e->suc&#xff0c;变成pred->suc&a…

Java 面试题之框架

1. Spring 是什么 Sping 是包含了众多工具方法的 IOC 容器&#xff0c;IOC是控制反转&#xff0c;说的是对象的创建和销毁的权利都交给 Spring 来管理了, 它本身又具备了存储对象和获取对象的能力. 。 容器&#xff1a;字面意思&#xff0c;用来容纳某种物品的装置。 比如 L…

JavaScript练手小技巧:数字反转时钟

样式基于博主的这篇文章&#xff1a; CSS3技巧38&#xff1a;3D 翻转数字效果-CSDN博客 既然可以实现翻转数字了&#xff0c;肯定就可以跟 JS 相结合去完成一些数字展示效果。 比如&#xff0c;数字反转时钟。 为了方便&#xff0c;所有 HTML 数字根据时间动态生成。因此&a…

企业内部培训考试系统培训计划功能说明

培训计划是预设好的一套课程系列&#xff0c;包含课程和考试&#xff0c;分多个阶段&#xff0c;每完成一个阶段就会在学习地图上留下标记&#xff0c;让用户看到自己的努力成果&#xff0c;增强成就感&#xff0c;从而坚持完成课程。 企业内部培训考试系统中如何设置培训计划…

一起玩儿3D打印机——06 Marlin固件的配置(三)

摘要&#xff1a;本文介绍Marlin固件的配置方法 25. 启用EEPROM参数保存功能 #define EEPROM_SETTINGS 打开此功能&#xff0c;会将部分参数保存在打印机中&#xff0c;这样通过屏幕就可以进行调节&#xff0c;而无需重刷固件。 26. 启用板载SD卡支持 #define SDSUPPORT 如…

【QT+QGIS跨平台编译】之七十七:【QGIS_Gui跨平台编译】—【错误处理:字符串错误】

文章目录 一、字符串错误二、处理方法三、涉及到的文件一、字符串错误 常量中有换行符错误:(也有const char * 到 LPCWSTR 转换的错误) 二、处理方法 需要把对应的文档用记事本打开,另存为 “带有BOM的UTF-8” 三、涉及到的文件 src\gui\qgsadvanceddigitizingdockwidge…

WebServer -- 架构图 面试题(上)

目录 &#x1f382;前言 &#x1f33c;流程图 && 架构图 1&#xff09;什么是 WebServer 2&#xff09;服务器基本框架 3&#xff09;Reactor && Proactor 模式 4&#xff09;同步 I/O 模拟Proactor模式&#xff08;Linux&#xff09; 5&#xff09;主从…

C语言基础练习——Day10

目录 选择题 编程题 不用加减乘除做加法 找到所有数组中消失的数字 选择题 1、求函数返回值&#xff0c;传入-1&#xff0c;则在64位机器上函数返回 int func(int x) {int count 0;while (x){count;x x&(x - 1);//与运算}return count; } A 死循环B 64C 32D 16 答案&…