[前端开发]网页计算器
网页计算器
效果
代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>计算器</title> <style type="text/css"> #calc{ border: solid 1px black; width: 300px; height: 300px; text-align: ...
[图形学]基础知识-渲染管线
基础知识-渲染管线
基本概念
Graphics Pipeline
Graphics Pipeline (图形渲染管线):管理 将3D坐标,转变为屏幕上的有色2D像素 的过程。也就是将一些原始图形数据,经过各种变化处理最终在屏幕上显示。
Graphics Pipeline 可以被划分为两个主要部分:
把3D坐标转换为2D坐标;
把2D坐标转变为实际的有颜色的像素。
Shader
Shader (着色器):运行在 GPU 的小程序,自定义显卡渲染画面的算法,使画面达到我们想要的效果。本质就是一段代码(主流的有 基于 OpenGL 的 GLSL、基于 DirectX 的 HLSL 等),这段代码的作用是阐述如何绘制每一个顶点的颜色以及最终每一个像素点的颜色。
渲染流程
我们可以将其分为三个阶段:应用阶段、几何阶段、光栅化阶段。
应用阶段
由 CPU 负责。
1. 准备场景数据
准备好 场景数据 ,包括:摄像机的位置、视锥体、场景中包含哪些模型、使用哪些光源等。
2. 粗粒度剔除
处理 场景数据, 将 在摄像机视锥体之外、被其他物品遮挡住 的物品剔除。
3. 设置渲染状态
渲染状态定义 ...
[UE]CanvasPanelSlot布局规则
CanvasPanelSlot 布局规则
UMG 中的 CanvasPanelSlot
我们先来看一下在 UI 面板中,CanvasPanelSlot 有哪些信息:
源码中的 CanvasPanelSlot
123456789101112131415161718192021222324252627282930313233343536373839404142434445class UMG_API UCanvasPanelSlot : public UPanelSlot{ GENERATED_UCLASS_BODY()public: /** The anchoring information for the slot */ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Layout|Canvas Slot") FAnchorData LayoutData; /** When AutoSize is true we use the widget's desired size */ UPROP ...
[UE]读取本地字体文件
读取本地字体文件
效果
通过代码读取指定目录下的字体文件 (.ttf / .otf) 转换为 UE4 内部可用的 Font
步骤
根据 FontName 在目录下寻找字体文件
生成 FontFace
生成字体对象
保存资源
根据 FontName 在目录下寻找字体文件
1234567891011FString FontPath;const FString FontPathTTF = FontDirectory.Path + TEXT("/") + FontNameStr + TEXT(".ttf");const FString FontPathOTF = FontDirectory.Path + TEXT("/") + FontNameStr + TEXT(".otf");// 判断是否存在 TTF / OTF 文件if (FPlatformFileManager::Get().GetPlatformFile().FileExists(*FontPathTTF)) FontPath = FontPat ...
[UE]读取与导出本地图片
读取与导出本地图片
效果
通过代码读取本地的 png 图片(可自己扩展其它类型)转换为 UE4 内部可用的 Texture2D;
利用 UE4 内的 Texture2D 在本地指定目录下生成对应 png 图片;
利用 UE4 内的 Sprite 在本地指定目录下生成对应的 png 图片。
PNG -> Texture2D
分析
读取指定目录的 png 图片,将信息存入数组 RawFileData
用 ImageWrapper 来保存 RawFileData 转为可用信息
生成空的 Texture
将数据写入 Texture 中
保存资源
读取指定目录的 png 图片,将信息存入数组 RawFileData
1234567891011121314const FString PicturePath = ImageDirectory.Path + TEXT("/") + ImageName + TEXT(".png");if (!FPlatformFileManager::Get().GetPlatformFile().Fil ...
跳表的介绍与实现
跳表的介绍与实现
背景
我们现在要实现一种数据结构,可以实现较为快速的 插入、删除、查询 操作。
显然每次暴力 O(n)O(n)O(n) 操作并不可取,我们第一眼就想到了比如 红黑树、Splay、Treap 这样的 平衡树 结构来实现。
最近我发现一种数据结构 —— 跳表,它基于链表建立多层索引来实现快速操作。
原本我以为这玩意儿形同鸡肋,但是了解到其在 Redis、LevelDB、ES 中都有应用,了解过后,发现其确实有可取之处。
介绍
首先对于一段序列,我们可以用链表的形式储存,如果不进行任何其它设计,那么我们进行 插入、删除、查询 的操作,复杂度显然是 O(n)O(n)O(n) 的,因为我们基本需要遍历每一个节点。
现在我们引用多个 索引链表 来优化这个链表。
对于一个链表,我们这样构建它:
原本的链表是:1→2→3→4→5,我们现在将其中的 某几个(后面会介绍如何确定) 节点,放到上一层链表中(即上一层索引中),构建出了一个新链表: 1→3→5,对于 1→3→5 ,我们再将其中某几个节点继续放到上一层中,构建出 3→5。
对于这样一个结构,我们就可以快速地实现一些操作。
比 ...
Github+Hexo建站记录
Hexo 建站
https://blog.csdn.net/qq_42579187/article/details/104760516
https://www.jianshu.com/p/189fd945f38f
换电脑重新部署
https://www.jianshu.com/p/906294181814
主题
https://github.com/jerryc127/hexo-theme-butterfly
文档:https://butterfly.js.org/
https://www.cnblogs.com/ldu-xingjiahui/p/12594024.html
使用 Butterfly 主题无法显示
错误显示:
extends includes/layout.pug block content #recent-posts.recent-posts include includes/recent-posts.pug include includes/pagination.pug
需要在hexo目录下输入命令:
npm install --save hexo-rende ...
[A*搜索]牛跑步
牛跑步
Time Limit: 10 Sec Memory Limit: 162 MB
Description
BESSIE准备用从牛棚跑到池塘的方法来锻炼.
但是因为她懒,她只准备沿着下坡的路跑到池塘, 然后走回牛棚.
BESSIE也不想跑得太远,所以她想走最短的路经.
农场上一共有M 条路, 每条路连接两个用1…N标号的地点.
更方便的是,如果X>Y,则地点X的高度大于地点Y的高度.
地点N是BESSIE的牛棚;地点1是池塘.
很快, BESSIE厌倦了一直走同一条路.所以她想走不同的路,更明确地讲,她想找出K条不同的路经.为了避免过度劳累,她想使这K条路经为最短的K条路经.
请帮助BESSIE找出这K条最短路经的长度.
你的程序需要读入农场的地图,一些从X_i到Y_i 的路经和它们的长度(X_i, Y_i, D_i).
Input
第1行: 3个数: N, M, 和K
第 2…M+1行: 第 i+1 行包含3个数 X_i, Y_i, 和 D_i, 表示一条下坡的路.
Output
第1…K行: 第i行包含第i最短路经的长度,或-1如果这样 ...
[A*搜索]骑士精神
骑士精神
Time Limit: 10 Sec Memory Limit: 162 MB
Description
在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位。
在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空位上。
给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘: 为了体现出骑士精神,他们必须以最少的步数完成任务。
Input
第一行有一个正整数T(T<=10),表示一共有N组数据。接下来有T个5×5的矩阵,0表示白色骑士,1表示黑色骑士,*表示空位。两组数据之间没有空行。
Output
对于每组数据都输出一行。如果能在15步以内(包括15步)到达目标状态,则输出步数,否则输出-1。
Sample Input
2
10110
01*11
10111
01001
00000
01011
110*1
01110
01010
00100
Sample Output
7
-1
HINT
Ans<=15
Solution
看到这题,我们 ...
[A*搜索]魔法猪学院
魔法猪学院
Time Limit: 10 Sec Memory Limit: 64 MB
Description
iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练。
经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的;元素与元素之间可以互相转换;能量守恒……。
iPig 今天就在进行一个麻烦的测验。
iPig 在之前的学习中已经知道了很多种元素,并学会了可以转化这些元素的魔法,每种魔法需要消耗 iPig 一定的能量。
作为 PKU 的顶尖学猪,让 iPig 用最少的能量完成从一种元素转换到另一种元素……等等,iPig 的魔法导猪可没这么笨!
这一次,他给 iPig 带来了很多 1 号元素的样本,要求 iPig 使用学习过的魔法将它们一个个转化为 N 号元素,为了增加难度,要求每份样本的转换过程都不相同。
这个看似困难的任务实际上对 iPig 并没有挑战性,因为,他有坚实的后盾……现在的你呀!
注意,两个元素之间的转化可能有多种魔法,转化是单向的。
转化的过程中,可以转化到一 ...