问题总结笔记

1.向量旋转

       问题: 将一个向量旋转90

        方法:旋转矩阵

FVector FrontDir = EndMousePoint - Point;
FrontDir.Normalize();
FVector Left = FVector(-FrontDir.Y, FrontDir.X, 0);
Verties.Add(Point + Left * (WallWedith / 2));
Verties.Add(FVector(Verties[0].X, Verties[0].Y, Verties[0].Z + WallHeight));
Verties.Add(Point - Left * (WallWedith / 2));
Verties.Add(FVector(Verties[2].X, Verties[2].Y, Verties[2].Z + WallHeight));
Verties.Add(EndMousePoint - Left * (WallWedith / 2));
Verties.Add(FVector(Verties[4].X, Verties[4].Y, Verties[4].Z + WallHeight));
Verties.Add(EndMousePoint + Left * (WallWedith / 2));
Verties.Add(FVector(Verties[6].X, Verties[6].Y, Verties[6].Z + WallHeight));

Point:起点坐标, EndMousePoint:终点坐标。

依次加入点的坐标,WallWedith:立方体的宽,WallHeight:立方体的高。

2.ProceduralMeshActor

问题:利用ProceduralMeshActor创建立方体

//侧面
for (int32 i = 0; i < Verties.Num() - 1; i = i + 2) {

	Triangles.Add(i);
	Triangles.Add((i+2)% Verties.Num());
	Triangles.Add(i+1);
	Triangles.Add(i+1);
	Triangles.Add((i+2)% Verties.Num());
	Triangles.Add((i+3) % Verties.Num());
}

//上下面
for (int32 i = 0; i < 2; i++) {
	for (int32 j = 0; j < Verties.Num(); j++) {
		if (j % 2 == i) {
			Triangles.Add(j);
		}
	}
	Triangles.Add(i);
	Triangles.Add(i+4);

}

先构建一个侧面,通过循环构建所有侧面,上下面单独处理

3.鼠标屏幕坐标转换成空间坐标(有偏差,有待改进) 


FVector2D MousePosition;

UWorld* world = GetWorld();
if (world)
{
	APlayerController* pc = world->GetFirstPlayerController();
	if (pc)
	{
		ULocalPlayer* LocalPlayer = pc->GetLocalPlayer();
		if (LocalPlayer && LocalPlayer->ViewportClient)
		{
			LocalPlayer->ViewportClient->GetMousePosition(MousePosition);
		}
	}
}

float Scale = UWidgetLayoutLibrary::GetViewportScale(this);

FVector WorldLocation;
FVector WorldDirection;
APlayerController::DeprojectScreenPositionToWorld(MousePosition.X, MousePosition.Y, WorldLocation,WorldDirection);

MouseLocal = FVector(WorldDirection.X * 1000/ Scale, WorldDirection.Y * 1000/ Scale, 0);

记得在Build.cs文件里添加"UMG"

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第35题搜索插入位置

题目&#xff1a; 题解&#xff1a; int searchInsert(int* nums, int numsSize, int target) {int left 0, right numsSize - 1, ans numsSize;while (left < right) {int mid ((right - left) >> 1) left;if (target < nums[mid]) {ans mid;right mid - …

Ubuntu Server 20.04 LTS 64bit安装ftp服务

1.安装vsftpd sudo apt install vsftpd2.配置vsftpd sudo vim /etc/vsftpd.conf write_enableYES # 启用任何形式的FTP写入命令&#xff0c;即可以修改文件local_umask022 # 本地用户创建文件的 umask 值&#xff0c;默认是被注释的connect_from_port_20YES # 针对 PORT 类型…

01_Nginx

文章目录 NginxNginx的核心功能Nginx的优势Nginx常用指令Nginx配置文件Nginx的核心功能&#xff1a;反向代理 Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子…

《大话西游2》本人收集的十二个单机版游戏,有详细的视频架设教程,云盘下载

《大话西游2》是一款经典的大型多人在线角色扮演游戏&#xff0c;也是一款国风经典的游戏。 有能力的可以架设个外网&#xff0c;让大家一起玩。 《大话西游2》本人收集的十二个单机版游戏&#xff0c;有详细的视频架设教程&#xff0c;值得收藏 下载地址&#xff1a; 链接&…

色彩空间转换在AI去衣技术中的应用与探索

在人工智能&#xff08;AI&#xff09;的广阔领域中&#xff0c;图像处理和计算机视觉技术一直占据着举足轻重的地位。其中&#xff0c;AI去衣技术作为一种新兴的图像处理技术&#xff0c;近年来受到了广泛关注。在AI去衣的实现过程中&#xff0c;色彩空间转换技术发挥着至关重…

信息系统项目管理师0057:运维管理(4信息系统管理—4.2管理要点—4.2.2运维管理)

点击查看专栏目录 文章目录 4.2.2运维管理1.能力模型2.智能运维4.2.2运维管理 IT运维是组织IT服务中关键的一种类型。随着组织IT建设的不断深入和完善,信息系统运维已经成为了各行各业各组织管理者和IT团队普遍关注的问题。IT运维是指采用IT手段及方法,依据服务对象提出的服务…

visionpro_对比工具_CogPatInspectTool

CogPatInspectTool CogPatInspectTool工具使用PatMax检测缺陷(缺陷被定义为运行期间图像中超出正常预期的图像差别的任何变化)&#xff0c;缺陷可能是物体遗失&#xff08;阻塞&#xff09;或者多余&#xff08;杂乱&#xff09;, 原理是通过PMAlign工具实现,用训练图片和当前…

Github账号注册

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

轮转数组(Leedcode)的题目

题目&#xff1a;给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步…

【快速上手ESP32(基于ESP-IDFVSCode)】09-Flash存储

ESP32中的Flash 关于ESP32中的Flash&#xff0c;我们需要再回顾一下命名规则。 我用的是立创开发板设计的板子&#xff0c;芯片型号是ESP32S3R8N8&#xff0c;因此可以知道我这块板子有8MB的Flash&#xff0c;大家可以参照着命名规则看看自己有多大的Flash容量。 操作Flash …

洗地机哪个牌子质量最好?这四款公认值得买,总有一款适合你

如今&#xff0c;洗地机在我们家庭清洁中&#xff0c;已经很常见了&#xff0c;它可以让我们快速的完成地面清洁的工作&#xff0c;无需我们手动去清洗滚布&#xff0c;大大的节省了我们清洁时间&#xff0c;给我们腾出来了更多时间去享受生活。但是目前&#xff0c;可供选择的…

通过WHM面板重启服务器

看到一位用户反馈他购买了Hostease的独立服务器带cPanel面板的&#xff0c;但是该用户想要重启服务器&#xff0c;通过cPanel面板进行操做管理重启&#xff0c;但是没有找到具体位置&#xff0c;因此留言寻求帮助&#xff0c;具体的操做步骤如下&#xff1a; 1.登录到WHM面板 2…

Oracle中的 plsql语法

01-plsql 为什么要plsql 复杂的业务逻辑 可以使用 编程语言实现 sql无法实现 plsql也可以实现复杂的业务逻辑 为不直接使用编程语言 而是学习plsql plsql会比直接使用 编程语言 速度更快 基本语法&#xff1a; [declare --声明变量 变量名 变量类型 ] begin --代码逻辑 …

ai扩写软件有哪些免费的?分享4款扩写好用的!

随着人工智能技术的飞速发展&#xff0c;AI扩写软件逐渐成为了内容创作者们的得力助手。它们能够迅速将简短的文案扩写成内容丰富、结构完整的文章&#xff0c;大大提高了创作效率。本文将为您盘点几款免费的AI扩写软件&#xff0c;助您在今日头条、百家号等自媒体平台上轻松打…

【快速上手ESP32(基于ESP-IDFVSCode)】08-SPI

SPI SPI&#xff0c;全称Serial Peripheral Interface&#xff0c;即串行外设接口&#xff0c;是一种同步串行接口技术。它最初由Motorola公司推出&#xff0c;并在其MC68HCXX系列处理器上首次定义。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器&#xff0c;以及数字信…

【HCIP学习】重发布和路由策略

一、重发布&#xff08;路由引入&#xff09; 1、背景&#xff1a; 一个网络拓扑中存在多种不同的路由协议&#xff0c;为了使多种不同的路由协议间能相互通信&#xff0c;出现了路由引入 为啥会存在多种不同的网络&#xff1f; 例如&#xff1a;OSPF由于区域架构的限制&am…

《苍穹外卖》Day02部分知识点记录

一、属性的拷贝以及密码的加密 使用org.springframework.beans中的BeanUtils.copyProperties()方法时&#xff0c;二者的属性名必须要一致。 /*** 新增员工* param employeeDTO*/Overridepublic void save(EmployeeDTO employeeDTO) {Employee employee new Employee();// 对…

renren-fast-vue-master常见报错和解决

前言&#xff1a; 因为最近博主的实习&#xff0c;所以在小破站写那个分布式微服务电商的项目&#xff0c;什么什么商城就不说了&#xff0c;大家都明白&#xff0c;相信大家像我一样&#xff0c;在使用renren-fast-vue-master的时候都很是头痛&#xff0c;项目还没开始就结束了…

防、治、管融合一体化旅居健康守护系统

随着人口老龄化趋势的加剧和人们生活水平的提高&#xff0c;养老服务需求不断增长。旅居养老作为一种新型的养老模式&#xff0c;逐渐受到广大老年人的青睐。在生命健康服务运营平台中&#xff0c;为了给老人提供全方位、个性化的生命健康服务&#xff0c;我们平台也特意开设了…

PUBG问题解决:吃鸡请重新安装软件MSVCP140.dll

近年来&#xff0c;随着电子竞技游戏的兴起&#xff0c;《绝地求生》&#xff08;俗称“吃鸡”&#xff09;成为了全球范围内备受瞩目的游戏之一。然而&#xff0c;由于游戏本身对计算机硬件和软件的要求较高&#xff0c;许多玩家在游戏过程中可能会遇到各种问题。其中之一就是…