- 博客(85)
- 资源 (8)
- 收藏
- 关注
原创 Vue3 瀑布流 动态加载图片,下拉无限滚动
3、监听滚动事件,重新计算组件可见区域的高度,推算出需要填充多少才能铺满高度。4、功能扩充,预先加载等同于多铺一些高度,动态变更列数等同于重新铺图。JavaScript中获取DOM元素宽度和高度的常用API。javascript获取屏幕高度和宽度、监听屏幕大小改变。2、对元素进行从上到下逐个填充,优先填充高度最短的那一列。js监听页面或元素scroll事件,滚动到底部或顶部。js 获取元素距离顶部高度。瀑布流使用虚拟列表性能优化。js中的各种高度(宽度)1、对元素进行按列区分。
2023-09-14 11:59:29
723
原创 Unity-透明物体渲染方式对比汇总
先说结论。直接混合确实会有模型内的先后顺序穿插,但是模型简单的话并不明显。我们甚至可以使用其他技术来减少这一区别,比如基于 相机和像素点的距离,距离越近透明度越高。这样可以解决大多数穿插问题。对于复杂模型来说多次pass渲染是必要的(多Material渲染性能比较差)。● 如果不需要考虑不同透明物体相互穿插,那么ZWrite Off(ZTest On,Cull Off)就能获得很好的效果。
2023-01-09 07:22:04
1837
4
原创 实现Unity Forward 多光源实时阴影Shader
实现点光灯,聚光灯,平行光阴影。如果需要自定义衰减值也可以自己通过宏来区分光源的类型,来自定义对不同光源的衰减值进行处理:
2022-11-16 00:15:01
1154
原创 2022 Windows上怎样删除提示无法删除的文件
如何删除文件粉碎机也删除不了的文件。今天发现鲁大师,还有0install软件在电脑上卸载后任然残留有文件,并且删除后重复出现。于是我开始彻底清理,发现有些文件删不掉并且火绒的文件粉碎也无用。于是我开始手动尝试删除,最后删除成功。
2022-11-10 11:52:18
916
原创 实现游戏后处理6大常用模糊算法
模糊是游戏后处理特效中特别常用的一种,常用于表示速度,故障,环境视角,毛玻璃等。BoxBlur均值模糊多次迭代降低采样进行采样-优化9次采样BoxBlur高斯模糊双重模糊技术(Dual Blur)Kawase模糊(Kawase Blur)径向模糊(Radial Blur)方向模糊(Directional Blur)
2022-11-09 13:01:29
1615
原创 Unity2D-怪物AI启发式寻路算法(多目标,任意怪物大小,攻击范围)
先上效果:红色方块为怪物体积大小为2x2个数1。黄色为目标个数3。白色点为障碍物。怪物攻击范围2x2(自身大小)。(这里为了方便观看,对算法每一步都进行了延时)怪物大小1x1,怪物攻击范围1x1(自身大小)。搜索过程中出现的红色路线就是路径,最后重新绘制的红色路径为对允许斜方向行走的路径。
2022-11-05 13:05:19
1963
原创 OpenGL相机自由移动旋转缩放,四元数,欧拉角,LookAt
当我们讨论摄像机/观察空间(Camera/View Space)的时候,是我们在讨论以摄像机的透视图作为场景原点时场景中所有可见顶点坐标。观察矩阵把所有的世界坐标变换到观察坐标,这些新坐标是相对于摄像机的位置和方向的。定义一个摄像机,我们需要一个摄像机在世界空间中的位置、观察的方向、一个指向它的右侧的向量以及一个指向它上方的向量。细心的读者可能已经注意到我们实际上创建了一个三个单位轴相互垂直的、以摄像机的位置为原点的坐标系。
2022-11-04 00:34:43
3824
1
原创 (最简单的)VS-2022搭建opengl开发环境
opengl开发前置必须:C++基础,VS开发环境。在C++中使用OpenGL需要配置多个库。为了让安装变得更简单,这里使用最新的C++的包管理器。~~C++终于有包管理器了,结束了手动编译时代~~ ,当然如果你不用那就只能下载源码,然后手动编译。而且还要自己在项目中引入包。●C++开发环境;●OpenGL / GLSL;●窗口管理;●扩展库;●数学库;●纹理管理。
2022-10-25 12:47:22
5116
3
原创 GAMS101-windows10-开发环境搭建避坑
为了学个GAMES101是真的不容易,官方虽然提供了Ubuntu开发环境镜像,但网盘下载贼慢,而且据说问题贼多。于是我尝试在windows10上搭建环境,先下载个vs2022,然后编译完全不通过。搞了一天一夜终于找到问题。
2022-10-17 17:28:01
981
原创 RTSP,Java实现简单的RTSP报文交换
RTSP是一种基于文本的协议,用CRLF(回车换行)作为每一行的结束符,其好处是,在使用过程中可以方便地增加自定义参数,也方便抓包分析。从消息传送方向上来分,RTSP的报文有两类:请求报文和响应报文。请求报文是指从客户端向服务器发送的请求(也有少量从服务器向客户端发送的请求),响应报文是指从服务器到客户端的回应。这里的Transport表示要使用的传输方式, TCP表示使用tcp传输, 也可以使用UDP。下面是报文拼凑的代码,使用建立TCP连接后安装RTSP规定的通讯顺序发送即可。这里使用的是netty。
2022-10-15 19:42:39
3049
3
原创 03 docker基础命令
容器内文件:/usr/local/tomcat/webapps/test/js/test.js。有时候docker容器死掉了,重启失败,看不到日志。#根据镜像id删除,注意如果两个镜像的镜像id(id前缀)一样,是无法被删除的。镜像查找地址:https://hub.docker.com/容器是镜像运行的实例,当镜像下载下来后进行运行就是容器实例。注意,如果镜像有实例在运行是不能被删除的。● 容器内文件拷贝到 服务器目录。#可以通过下面命令查看命令参数。● 服务器文件拷贝到容器内。服务器目录:/opt。
2022-10-15 19:20:55
392
原创 02 docker安装
Docker安装-CentOS,更多的是众多开发者自发上传分享的。不幸的是,Docker Hub并没有在国内部署服务器或者使用国内的CDN服务,因此在国内特殊的网络环境下,镜像下载十分耗时,少则二十分钟,多则数十小时。● 其他 Linux 发行版:https://docs.docker.com/install/linux/docker-ce/binaries/docker镜像库:https://hub.docker.com/docker官网:https://www.docker.com/
2022-10-15 19:11:51
457
原创 Unity-Matcap材质捕捉和薄膜干涉效果
于是可以利用边缘光的计算思路使用 NdotV,然后反向可以得出一个边缘值大,而中心点值小的数据。将数据带入X(横向,取决于纹理方向),然后固定UV中Y的值即可完成类似采样。Material Capture(材质捕捉技术)技术:通过很简单的技术表现出很不错的效果。使用相机空间下的法线作为UV进行纹理采样,将图片上的圆形纹理图完全还原到物体上。将一张这样的纹理读取成这个样子,也就是需要在边缘的读取到右边,中心读取左边。这种改进效果可以说十分明显,基本上完全还原材质球的样子了。适用于比较圆滑的物体采样。
2022-10-15 18:55:15
1627
原创 Unity 3D数学\图形学基础-游戏开发(向量)
若坐标系是满足右手定则的,当右手的四指从a以不超过180度的转角转向b时,竖起的大拇指指向是c的方向。且有:a // b (平行), 则 a / ||a|| = b / ||b||,a,b!点乘的结果描述了两个向量的相似程度(方向接近程度),点乘的夹角越小,两个向量越接近。可得向量间夹角为:cosX = (a * b) / (||a|| * ||b||)a * b = ||a|| * ||b|| * cosX, X为向量夹角。标准化向量只表示了向量的方向,剔除了向量的大小。
2022-10-14 20:27:50
1868
原创 Unity渲染管线流程
多相机渲染CPU渲染管线层级剔除遮挡剔除发送数据(将所有数据打包,发送给GPU)GPU渲染管线图元装配及光栅化执行裁剪裁剪空间转换到NDC计算NDC背面剔除图元装配光栅化片元着色器Shader纹理寻址模式纹理压缩格式光照计算光照模型经验光照模型环境光输出合并Alpha测试模板测试深度测试混合Blending后处理。
2022-10-13 09:00:00
7432
原创 一、SpringBoot前置(从0搭建Maven项目)
当然框架存在的意义就是为了减少重复的不必要的开发流程,让开发变简单,Spring Boot也是如此。Maven是一个包管理器,帮你管理你在项目中使用到的各种jar的依赖,让你摆脱在网上漫天找jar的烦恼,以及在jar版本出现冲突时的不知所措。其实一般Spring Boot项目就是按照Maven项目来搭建的,或者说我们可以在Maven项目中使用Spring Boot框架。这里需要打开MAVEN的安装目录,我的MAVEN安装在D:kit\D:\kit\apache-maven-3.8.1。注意文件的层级关系。
2022-09-26 15:06:38
758
原创 【Docker】入门1_从0开始Docker_Docker是什么
Docker系列文章目录文章目录Docker系列文章目录前言Docker是什么Docker解决的问题Docker思想相关概念前言为什么要使用Docker呢?相信大家在大学编程中应该学过C语言,C++语言,Java语言来进行编程。在编程过程中,C\C++语言需要g++来进行编译,Java则需要JDK来编译,并使用JRE来运行。有时候程序在自己电脑上运行成功,但室友copy过去之后就报错;实验室运行成功,但是拷贝到本机就不行;网络上的代码片段拷贝下来,在本机编译过了但也无法运行;为了解决由于机器环
2022-05-24 19:40:18
166
原创 简单好用的java bean对象深拷贝工具
copy evething简单好用的java bean对象拷贝工具。支持字段注解,注解错误抛出异常。github仓库简单的拷贝class A copy to new class A你只需要简单的这样的代码:A a = new A();A a2 = Copier.copy(a); // clone new instanceLog.info(App2.class, "拷贝后的A为:" + FieldContext.toString(a2));跨类的拷贝class A copy to new
2020-12-02 23:23:37
1620
原创 第十一届蓝桥杯参赛感悟
又是一年蓝桥杯,求求它分配我个省一。然后让我公费旅游一次。总的来说做完题感觉还行,其中一题没动笔,一题瞎蒙,一题手算蒙,其余还是有把握的。刚开始做题的时候觉得嗯好简单,到中间第4题嗯,好难,这tm,直接考了个图的连通性加排列。放弃这10分,嗯,后面两题编程题送分的吧。嗯倒数第二题是啥,数据规模100000,时间n方能过吗?最后一题是啥东西,看不懂,好像是个背包问题,太复杂了。没时间了????告辞。...
2020-10-17 13:45:43
1456
5
原创 2路归并排序(考研数据结构)
2路归并排序利用分治思想将列表不断划分成左右两块(后序遍历 左右根),然后对每个各自有序的左右两块合并成一块大的有序块。时间:最好、最坏、平均-O(nlog2n)需要分解为log2层(二叉树的高度),每次合并需要O(n)空间:需要一个和原列表等大的空间 O(n)稳定性:稳定的优点:是一种稳定的,且快速的排序算法。可以扩展为多路归并,然后结合败者树优化。易于支持并行排序缺点:4. 需要过大的辅助空间O(n)5. 需要支持随机访问(链表不适用)/*2路 归并排序使用了分而治之的
2020-09-29 22:56:50
1008
原创 堆排序(考研数据结构)
堆排序利用堆了这种数据结构(一种特殊的完全二叉树,根>左右)时间:最好、最坏、平均都为O(nlog2n)空间:O(1)只使用了几个变量稳定性:不稳定,构造堆的适合可能会打乱原有顺序优点:快速,对于任意序列其时间复杂度很稳定。缺点:要求能够随机访问,故只能对顺序表排序。算法思路:先构造出一颗大根堆(由小到大排序)。然后将堆顶元素(此时堆顶元素最大)和堆尾元素交换交换后堆的规模缩小一(也就是将已经排好序的堆尾不再排序)重复2.直到堆的规模为1 此时不再需要排序/*堆排序
2020-09-29 00:06:21
314
原创 快速排序算法(考研数据结构)
快速排序算法快速排序算法是一种交换排序,基于冒泡排序的采用了二分思想的优化。最坏情况将会退化为冒泡排序(这取决于基准字选取的方法)。排序思想:将元素划分为以基准字为中心的两块,一块小于它一块大于它(每次划分结束,基准字都会放到最终位置上)继续对以基准字切分出来的两块进行划分-重复1(不包括基准值)当左右两块都只有一个或者0个元素时,退出。排序完成。时间: O(nlog2n), 最坏情况下O(n^2)空间:递归栈的深度O(log2n)。最坏情况深度为n,空间为O(n)稳定性: 不稳定,排
2020-09-27 23:46:13
499
原创 线性表顺序存储结构-顺序表(考研数据结构)
线性表顺序存储结构-顺序表查找第i个元素:时间O(1)查找某个值的元素:时间O(n)删除一个元素:时间O(n)插入一个元素:时间O(n)优点:能够随机访问,查找第i个元素时间O(1)在有序时可以使用二分查找法,在时间O(log2n)级上完成查找某个值的元素缺点:使用静态分配时,无法扩展容量使用动态分配时,扩展容量需要时间O(n),空间O(n)插入删除需要移动大量元素/*动态分配的顺序存储结构的线性表实现*/#include<stdio.h>#include
2020-09-27 00:22:49
281
原创 无头结点单链表实现(考研数据结构C/C++)
不带头结点的单链表。属于线性表的一种,采用链式存储的存储结构。优点:空间动态分配,不要求连续的大片空间。插入删除方便(时间复杂度低)。缺点:不能随机访问。相对于带头结点的单链表 插入、删除不统一(实现比较复杂)。算法性能:查找:时间O(n)插入: 头插-时间O(1),尾插-时间O(n)(加入尾节点可优化为-时间O(1))删除: 按位/值删除-时间O(n)#include<stdio.h>#include<stdlib.h>/** * 无头结点
2020-09-24 23:44:26
726
原创 使用Maven从0开始搭建spring boot2.x项目
前言因为放了寒假,时间挺长的。然后想利用这段放假的时间把自己的个人博客网站搭建起来。之前学了ssm框架,然后使用javaweb+ssm也写了两个比较小的项目。这次想试试大项目,把自己的博客搭的完完整整。然后考虑到这个项目我可能会终生维护。于是不再使用javaweb + ssm。而是使用maven搭建sm(spring boot + mybatis)框架来完成。但是我没有系统的学过maven和sp...
2020-01-05 13:23:39
428
原创 win10 安装 mysql8.0 - 总结安装3小时的坑(希望大家1分钟安装成功)
首先应该下载mysql8.0的zip包官网的下载速度还是比较快的,大概1mb\s的样子(至少比某盘强)。下载链接:mysql官网进入官网后选择下载版本为Microsoft Windows,下载mysql8.x版本。解压并且添加my.ini配置文件下载完成后,将zip压缩包拖到自己要安装的目录。然后解压。同时创建一个文件夹mysql-8.0.18-win64-install(这个文...
2020-01-02 22:40:48
1109
1
原创 【Java 死锁】用Java写个死锁
写个死锁bug死锁发生场景之一大概就是。如果有两个线程A and B。如果A执行了一段任务想等B执行完成再执行,同样如果B如果执行了一半想等等A。那么就会一直等到天长地久QWQ。实例代码: public static void main(String[] args) { test2(); } public static void test2(){...
2019-12-28 21:58:29
1596
原创 Java多线程 - 起步
java多线程的入门使用简介通常的说一个.exe程序执行之后就会产生一个进程。进程是程序向操作系统申请资源的基本单位。而线程是进程中可独立执行的最小单位。总结一下就是说进程运行的环境是操作系统。而线程运行的环境是进程。当你点击了多个相同的.exe之后就会产生多个进程就像你可以同时运行多个QQ一样。然后你就可以登录多个QQ账号。然后在QQ中如果你想同时的处理多个消息。比如同时有多个人发消息给...
2019-12-28 20:18:45
198
原创 Android简单音乐播放器
话不多说先上效果前言写这个音乐播放器实在是迫不得已。因为我们Andoird课程要求写一个音乐播放器。所以就有了此项目。这个项目比较简单,实现了最基本的音乐播放功能,然后界面是仿照着网易云音乐的样式写的想写成一样但是技术不够QWQ。基本的音乐播放设置播放音乐文件Android播放媒体文件大概都是使用MediaPlayer这个类来操作的。在播放音乐前,必须要给这个MediaPlayer设...
2019-12-22 02:34:50
4733
4
原创 极其简洁的购物商城静态网站
这里写自定义目录标题极其简洁的购物商城静态网站实现效果具体实现极其简洁的购物商城静态网站首先介绍一下使用了那些东西做的。整体使用html5+css+js(少量)+jquery(一点点 )实现内容有 js轮播图,canvas实现飘雪,背景音乐。这些比较垃圾的功能大部分都借鉴了其他人的实现。直接贴的js代码然后加了注释而已在介绍实现之前先给大家看一下效果实现效果具体实现待续。。。。过...
2019-12-19 18:16:34
5784
4
转载 log4j 详细讲解(转载)
原文出处链接:https://blog.csdn.net/u012422446/article/details/51199724日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。一、入门实例1.新建一个Java工程,导入包...
2019-11-15 11:29:28
201
原创 小朋友过河(贪心算法求解 求推翻, 反正我测试了几组数据没问题)
首先是最小和次小过河.策略需要, 始终保证次小的在对岸,最小的在岸这边。#include<stdio.h>#include<algorithm>#define MAX 99999using namespace std;int N = 0;int num[MAX] = {0};int tan_xing(){ int ans = 0; int min...
2019-03-19 16:12:33
364
原创 2014蓝桥杯 小朋友排队(归并排序 和 数状数组 求逆序对)
标题:小朋友排队n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。请问,要让所有小朋...
2019-03-18 09:52:41
541
3
原创 蓝桥杯2014省赛 《地宫寻宝》100%数据全过代码
备赛重要, 先放代码, 题解有时间再写.#include<stdio.h>#include<string.h> #define MOD 1000000007int N = 0;int M = 0;int K = 0;// 存放输入地图 int num[51][51] = {0}; // 存放路径结果 unsigned long long count_a...
2019-03-17 16:14:56
256
原创 C语言的字符串输入
// 空格之前的字符串存储到定义好的字符数组中。int scanf("%s");// 会把回车一起提走但不会把回车输入数组里。char* gets(char*);
2019-03-16 20:00:53
299
原创 2014蓝桥杯 打印图形
## 标题:打印图形 小明在X星球的城堡中发现了如下图形和文字:rank=3 * * * * * * * * *rank=5 * * * ...
2019-03-16 11:12:52
557
原创 2017蓝桥杯C++ 发现环 - 并查集
题目和解题步骤待添加:、。。。。。。。 先把代码放这。并查集解发现环,并且输出环上的节点。这里可以开两个并查集增加查找速度。先就这样就够了。import java.util.Scanner;public class test { static int N = 0; static int num[] = new int[100000];// 存并查集 static int a...
2019-03-15 20:25:50
563
原创 关于蓝桥杯竞赛的一些小问题。(备赛 and 参赛)
大一到大三从未系统学过算法类课程,零散的看了一下算法书籍,浅学了一些树,图,和其他杂七杂八的算法。直到大四开始看《算法设计与分析基础第3版》(这里强烈推荐,不可多得的好书,能帮你梳理你零散的算法成体系)。我花了半个月看完,并且在看的过程中刷HDOJ的集训题目(现在好像非本校不让进了 )。累加花费一个月左右时间,感觉解题思路一下子清晰明亮。然后半个月后省赛(轻松拿了省一第4顺位 ),如果顺着这个势头下去估计是拿国一无压力的吧(实际上离国一差了就10个名次,就是自己太菜了 几乎是裸考,因为要毕业了准备论文,准
2019-03-13 23:14:14
16374
17
原创 螺旋折线(18年第七题)
第七题 标题:螺旋折线(18年第七题)如图 所示的螺旋折线经过平面上所有整点恰好一次。对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。例如dis(0, 1)=3, dis(-2, -1)=9给出整点坐标(X, Y),你能计算出dis(X, Y)吗?定义数值:设当前所在螺旋层数为 C 层。第一步:分析出特殊的右规律的点。右...
2019-03-11 22:44:41
480
OpengGL实现相机自由移动旋转-完整项目
2022-11-05
Unity2D怪物AI-快速启发式寻路算法-多目标-多怪物大小-攻击范围
2022-11-05
两个相同的值,参与类型转换结果完全不同
2023-02-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人