- 博客(37)
- 收藏
- 关注
原创 山东大学项目实训(四)—— 微信小程序扫描web端二维码实现web端登录
点击登录后,显示二维码→打开“探古”(本项目)微信小程序,扫描二维码确认登录→web端登录成功因为本人主要负责web前端的开发,所以本文仅介绍web前端的实现方法我这里使用的是方法,该方法可以获取符合密码学要求的安全的随机值,具体可参考:mdn web docs Crypto.getRandomValues()二维码的生成使用的是qrcode.react包的QRCode组件,其value属性存储生成的随机值这一部分需要非常注意setInterval的闭包属性!注意这里setInterval第一个参数方.
2022-06-08 20:54:53
1072
原创 山东大学项目实训(三)—— “骨刻文复现”模块(使用React在canvas画布上画图)的实现
用户可以在中间图片画布上描摹骨刻文,并且可以设置线条宽度、使用橡皮擦除、进行清空、撤回操作等等。点击提交按钮可以将用户复现的骨刻文笔迹上传服务器,并获取评分。这部分代码主要使用了canvas画布,在一个div中包含了4层结构,如图:除了第二层,其余层的position都设置为,即不占据文档流;因为初始的canvas是透明的,所以在其下方(第三层)的img可以透过第二层而被用户看到;第一层的加载图标是当服务器的图片还未传过来时用来占据页面,提示正在加载。因为事件坐标里的原点位于浏览器左上角,而canvas
2022-06-06 20:53:40
886
1
原创 山东大学增强现实实验四
注意:本人尚处在opencv的入门学习阶段,本博客仅为个人学习笔记见解,如有不当,欢迎指出题目(实验/理论)平面标志物的视觉跟踪,要求:选择一个标志物,可以是人工标志物,也可以是自然标志物;实现和实验二相同的效果。用手机或摄像头拍摄标志物的影像,建议读取视频流中的影像;写一个视觉算法获得标志物与相机的相对位姿;测量算法的帧率;添加虚拟物体;算法自己完成,不得使用ARCore/easyAR等现成SDK。可以使用opencv中自带的函数。注:使用OpenCV/OpenGL来实现一些滤波、.
2022-05-29 21:16:04
1921
2
原创 山东大学项目实训(二)—— 骨刻文项目web端性能优化与自适应调整
一、性能优化——点赞功能防抖函数实现在项目中,点击点赞按钮,需要向服务器连续发送两次请求:一次是请求点赞一个帖子,一次是获取所有帖子信息以更新页面;再次点击点赞按钮,视为取消点赞,同样需要向服务器发送两次请求:一次是请求取消点赞一个帖子,一次是获取所有帖子信息以更新页面;这时就会发现有个问题,假如用户对点赞按钮进行暴力点击(非常频繁地点击),那么浏览器就需要非常频繁地向服务器发送请求,这样非常的消耗资源,甚至会造成卡死!作为一个严谨的web前端开发者,这个时候就需要想办法解决这个问题!(认真)
2022-05-17 21:49:47
320
原创 React RouterV6 设置<Link>的激活状态(React does not recognize the `activeStyle` prop的解决方法)
需求如图,需要在当前页面时,当前页面的导航颜色变为黄色问题在V6版本以下,Link标签会有activeStyle属性或者activeClassName属性,这两个属性都可以设置router激活状态时Link的样式,即当前页面为Link所指页面时Link的样式。但是,在V6中,使用这两个属性会出现报错如图,会提示找不到该方法。提示说可以把其中的大写改成小写,但是这个方法是错误的,并不能达到我们想要的效果。解决在V6中,已经删除了activeStyle属性以及activeClassName属性
2022-04-18 13:52:17
1993
原创 css九宫格(父元素宽高指定或不指定时的实现方法)
# 情况一:指定父元素的宽高时指定父元素的宽高时,若格数确定,子元素的宽高也确定。在这种情况下,调整浏览器窗口大小,元素的大小不会发生改变。下面我用一份css代码实现对九宫格和田字格两种布局。
2022-04-17 10:47:20
2750
1
原创 react canvas画布图片显示不出来的解决方案
可能的原因:图片未获取到图片获取到了,但是在context.drawImage前还没加载出来代码class Canvas extends Component { constructor(props) { super(); this.canvas1 = React.createRef(); this.canvas2 = React.createRef(); this.image = new Image();
2022-04-07 18:23:42
2665
原创 山东大学项目实训(一)——骨刻文项目web端主页的实现
参照上一版项目的UI,完成了第一版骨刻文项目的web端主页,主页主要包含的内容有滑动页设计、骨刻文背景介绍、骨刻文论文、学术动态等内容。后续可能会再加上骨刻文分布的地图(echart实现),再美化一下ui。下面主要介绍主页的几个相对亮点的技术实现一、滑动展示页的设计上一版ui中的滑动展示页是这样的:可以看出它有个很大的缺点就是在图片的边缘有边框,其实也就是图片大小和滑动页大小没有适配,这个问题其实很好解决。我使用的是swiper插件,在swiper插件中,放入的图片会自动适配滑动页的大小。下面我将
2022-04-02 21:14:43
335
原创 山东大学增强现实实验三
# 题目设置场景中的多个标志,通过跟踪这些标志,实现操控虚拟物体的目的。虚拟物体自选,要求:1)标志物至少有3个(一个识别,一个平移,一个旋转);2)操控虚拟物体的平移和旋转;3)文档给出代码及实现思路。
2022-03-27 19:05:52
4677
原创 js获取单选框选中的值
# 前言在网上查的很多资料都是用JQuery获取,但是我觉得应该直接用js就可以实现这个功能。网上有一些用js实现的是使用```window.load=function(){...}```,在页面加载时就调用函数去获取。但是会发现它仅仅在页面最初加载时读取到默认的checked值,当选中项发生改变时,它不会再去获取,不符合我的期望。
2022-03-16 11:13:59
14141
原创 证明旋转矩阵为正交矩阵以及证明旋转矩阵的特征根只能为正负一
本人初学增强现实课程,其中涉及到了矩阵变换的知识点。书中使用三维正交矩阵表示物体的旋转,不过没有给出相关的证明。本人查阅了相关资料,整理了一下各家思路,照着自己的理解写了一下旋转矩阵为正交矩阵的证明以及相关性质的证明。如有错误,欢迎交流指正~另外,本文是以一种零基础小白的角度来写,对一些内容会进行非常详细的解释,对一些大佬来说可能会有些冗余,在此先提前告知~
2022-03-13 16:46:22
2937
原创 2022微软苏州Software Engineer校招暑期实习生二面
写在前面本人应聘的是Software Engineer岗位,更擅长的是前端。但是微软招聘大多考的是算法,今天面试的时候一道前端的题目都没问到emmm…一面也是(详见微软苏州校招Software Engineer暑期实习生一面今晚得到通知面试不过,于是在网上搜了一下面试题的答案,整理成这篇文章供大家参考。自己答的就不写上来了…(感觉有点丢人现眼…问答面试官就着我自我介绍的内容简单问了几个问题:为什么想学React、学React的时候是否有过牢固的前端基础你做的五子棋后端的数据结构是怎么设计的?这
2022-03-04 18:30:54
1651
原创 2022微软苏州Software Engineer校招暑期实习生一面
写在前面本人应聘的是Software Engineer岗位,更擅长的是前端。但是微软招聘大多考的是算法,今天面试的时候一道前端的题目都没问到emmm…问的全部都是跟数据结构相关的。今晚得到通知面试不过,于是在网上搜了一下面试题的答案,整理成这篇文章供大家参考。自己答的就不写上来了…(感觉有点丢人现眼…问答1. 个人见解自我介绍完后,面试官听我介绍大部分是前端的内容;然后就问我为什么想做前端、前后端的区别、移动端有没有接触过(面试官是做移动端的)等等问题2. 数据结构(1)你知道的数据结构有
2022-03-01 09:08:02
1373
原创 软件工程与创新实训课程总结
2021SC@SDUSC课程总结这次我们小组一起分析openmeetings代码,一开始我想提议以功能来划分任务,后面写起来发现这其实完全不可行。因为openmeetings代码量太大了,而且绝大部分代码并不能让我们很快地分析出它是属于哪个功能模块、完成哪个任务的。所以我觉得我们按包来划分工作是非常合理的。同样,对于我分析的openmeetings-install包,我也无法做到按功能去讲解。只能先分析其大致结构,然后从我认为的最核心的文件夹(installation)、文件(ImportInitv
2021-12-23 12:44:24
512
原创 openmeetings-install分析(十二)——Admin类询问阶段processInstall分析(5)
2021SC@SDUSC在上篇文章中,我们分析了performImport方法中使用Simple框架序列化Java Bean对象的部分,在本篇文章中我们将对performImport方法中剩下的代码进行分析。performImport源码 // BackupImport.java public void performImport(InputStream is) throws Exception { ... // 分析到了这句代码 BackupVersion ve
2021-12-23 11:07:14
376
原创 openmeetings-install分析(十一)——Admin类询问阶段processInstall分析(4)
2021SC@SDUSC在上篇文章中,我们分析到了processInstall方法下的processRestore方法。在processRestore方法中,我们看到了来自backup包的BackupImport类实例,在processRestore方法中,该实例调用了performImport方法,我们分析到了 File f = unzip(is);这行代码。在本篇文章中,我们将对performImport方法剩下的代码进行分析。performImport源码 // BackupImpo
2021-12-19 23:23:40
283
原创 openmeetings-install分析(十)——Admin类询问阶段processInstall分析(3)
2021SC@SDUSC在前2篇文章中,我们对processInstall类的部分代码进行了非常详细的分析,接下来,我们将继续分析processInstall类的剩下部分代码。processInstall方法源码 // Admin.java private void processInstall(String file) throws Exception { ... // 上面部分的代码已经分析过,就省略了 if (cmdl.hasOption("file")) { Fi
2021-12-12 13:53:16
460
原创 openmeetings-install分析(九)——Admin类询问阶段processInstall分析(2)
2021SC@SDUSC在上篇文章中,我们从Admin类询问阶段processInstall方法入手,分析到了ConnectionPropertiesPatcher类的patch方法、patch方法中的getConnectionProperties方法,getConnectionProperties方法中的Arr类;从Admin类跨越到了同包下的ConnectionPropertiesPatcher类,不过也都处在我的分析任务内,所以直接就一并对他们进行详细分析了。在这篇文章中,我们将继续对上篇文
2021-12-05 11:12:14
143
原创 openmeetings-install分析(八)——Admin类询问阶段processInstall分析(1)
2021SC@SDUSC在上篇文章中,我结合Apache Commons CLI解析命令行的知识点对Admin类进行了相关方面的分析。接下来,我将具体分析该类询问阶段涉及到的一些方法,这些方法即为应用程序通过查询CommandLine的选项值确定采用的执行分支。先回顾一下询问阶段的代码 // Admin.java void process(String... args) throws Exception { ... verbose = cmdl.hasOption('v');
2021-11-26 15:26:51
279
原创 openmeetings-install分析(七)——Admin类解析命令行分析
2021SC@SDUSC先回顾一下openmeetings-install包下存放主要代码的文件结构在之前的文章中,我们已经分析完了installation包,下面我们开始进行cli包下代码的分析Apache有一款解析命令行的工具包:Apache Commons CLI ,和这个文件夹的命名是一样的,那么它的作用可能也有相似之处?我决定通过对Apache Commons CLI进行学习来一步步分析该包的代码。官方教程地址:https://commons.apache.org/proper/co
2021-11-20 23:02:40
332
原创 Unity The type name ‘Registry‘ could not be found in the namespace ‘Microsoft.Win32‘...
版本号具体报错内容:Console Error Pause:解决点左上角File→Build Settings点左下角Player Settings找到other settings下的Configuration→Api Compatibility Level把它换成 .NET Frameworkunity会自动编译,报错就没有了原因看到提示Version=4.1.0.0,应该是需要设置unity使用的.Net版本。这里没有其他选项,就换个 .NET Framework试试
2021-11-09 20:06:15
3640
原创 openmeetings-install分析(五)——ImportInitvalues类分析(3)
2021SC@SDUSC在 openmeetings-install分析(三)中,我们已经分析了关键方法loadAll()中的checkInstalled方法和loadSystem方法,在这篇文章中,我们来分析loadAll方法中的剩下2个方法:loadInitUserAndGroup和loadDefaultRooms先回顾一下loadAll方法的代码: // ImportInitvalues.java public void loadAll(InstallationConfig cfg, bo
2021-11-06 10:51:03
219
原创 openmeetings-install分析(四)—— Asterisk网络电话技术
SIP(Session Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。...
2021-10-30 17:23:44
1049
原创 openmeetings-install分析(三)——ImportInitvalues类分析(2)
2021SC@SDUSC上篇文章链接:openmeetings-install分析(二)——ImportInitvalues类分析(上)loadAll方法经过前面的分析,我们知道同包下的Admin类会调用ImportInitvalues类下的loadAll方法去完成变量的初始化加载。下面我们来重点分析这个方法,这个方法涉及的内容几乎覆盖了整个ImportInitvalues类loadAll方法源码//ImportInitvalues.javapublic void loadAll(Install
2021-10-22 15:32:22
365
原创 openmeetings-install分析(二)——ImportInitvalues类分析(1)
2021SC@SDUSC本篇文章开始分析openmeetings-install包下的ImportInitvalues类位置:src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java一、日志@Componentpublic class ImportInitvalues { private static final Logger log = Red5LoggerFactory.getLogger(Import
2021-10-17 10:05:10
283
原创 openmeetings-install分析(一)——目录结构分析
2021SC@SDUSC本文分析的openmeetings版本为4.x整体结构打开项目的src文件夹,在该目录下打开cmd,输入tree openmeetings-install命令即可查看openmeetings-install包的树形目录结构src目录下包含了三个文件夹:main、site、testmain文件夹用于存放项目的java文件及resources静态资源test文件夹用于存放测试用的java文件site文件夹用于存放配置的站点描述文件,官方参考文档:Configurin
2021-10-10 16:50:12
223
原创 基于ant design pro的前后端分离的小型餐馆管理系统
安装配置前端下载代码antDesignProLearning-front安装依赖,在命令行输入命令npm install或yarn官方推荐使用 tyarn 来进行包管理,可以极大地减少 install 的时间和失败的概率,并且完全兼容 npm。按需要修改部分代码页脚在src/components/Footer/index.jsx修改后端接口地址在config/proxy.js修改我的项目接口地址默认是localhost:8080/api/其他,参考官方文档及教
2021-09-28 11:54:54
644
原创 详解如何用java增加文件的用户访问权限
这里代码实现的是为一个图片文件增加所有用户的完全控制权限 目录实现代码逐步详解代码1. 获取文件视图2. 通过文件视图获取文件权限列表3. 在权限列表中增加对应权限条目打印结果写在最后 实现代码//修改访问权限 Path path= Paths.get(file.getPath()); AclFileAttributeView aclView= Files.getFileAttributeView
2021-09-20 20:50:12
2291
2
原创 ant design pro v5 req.body获取数据为空的问题
问题描述需要发送请求修改mock里面MaterialList的数据,在service的方法中可以打印出正确的需传递的参数,但是在mock里面使用 res.send(req.body) ,返回的却是{}原代码// @/services/ant-design-pro/api.jsexport async function updateMaterialList(options){ console.log(options) return request('/api/updateMaterialLi
2021-08-31 10:34:09
450
原创 ant design pro v5子路由页面不显示的问题
我一开始的路由配置://config/route.jsexport default [ { path: '/', redirect: '/food', }, { name: 'food', icon: 'CoffeeOutlined', path: '/food', component: './Food', }, //主要在这个地方配置了子路由list和history { name: 'material', i
2021-08-30 07:29:53
3241
原创 微信小程序分页的简单样式实现
先上效果图比较简单,接到需求做一个分页器,但是在网上找了很多都没有现成的代码,就打算自己手写一个后来感觉这个做得完整的话实现起来有点复杂,需求也改了,就没再往下做了有需要的可以在我的基础上添加一些逻辑代码,把它完善一下代码wxml<view class="tr"> <view class="td"> <text class="cuIcon-pullleft"></text> </view> <view cla
2021-08-24 11:43:42
867
原创 wx.request 回调不执行解决方法
解决方法:勾选【开发环境不校验请求域名及TLS版本】后回调正常执行具体操作步骤:(微信开发者工具右上角)详情→本地设置→勾选不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书...
2021-08-11 11:14:39
1382
原创 校招地平线前端开发实习生一面面经
面试官很nice,很有耐心,问的问题很少,也可能是因为看出来我比较菜,就不想多问了…(最近也在准备期末考试,有点长时间没接触前端知识了,以前js的语法也很多都忘了呜呜呜)19:00面试,13分钟结束,然后快20点通知结果:凉凉。哎,不过也非常可以理解,就我答成这样,哎,不过也是个经历吧,毕竟我才大二,学前端也才一个学期,这个学期还基本没碰过前端。哎,说明我还有很长的路要走,还是要踏踏实实地学,把每个知识点都再弄透一点,不出来不知道自己有多菜hhhh…下面是面经:之前做的项目有哪些自己印象比较深
2021-06-24 20:23:19
685
原创 javax.json包的下载
正在学习Java WebSocket,需要用到javax.json包,然后在网上找了找,优快云里面有但是需要付费,后来找到了这个网址,我尝试着下载并导入了,可以正常使用。我看到这个网站里面还有各种其他的jar包,贴出来分享一下…下载网址:Download javax.json-1.0.jar : javax.json « j « Jar File Download除了javax.json-1.0.jar以外,里面有其他各种版本的javax.json包顺便附上一个比较详细的官方javax.json
2021-04-22 17:07:39
1595
3
原创 C++ while(*p)与while(p)的区别
测试用的是2019.02Clion编辑器简要回答while(*p)指的是当p指向的数值不为0,或者不为’\0’时执行操作。相当于while(*p!=0||*p!=’\0’)while( p)指的是当p存在指向时执行操作。(这个是根据结果推测的结论,分析过程和测试代码如下,如有不对,还望指正!)测试代码#include <iostream>using namespace std;char a[6]="a\0p0l",*p;int main() { p=a; c
2020-08-26 17:54:38
5224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人