CodeSnippet

拇指投篮 ! Cocos Creator 3D !

↘锁芯ラ 提交于 2021-01-09 05:44:28
你的命中率是多少呢?文章底部试玩! 效果预览 配置环境: Cocos Creator 3D v1.0.1 玩法说明: 触摸屏幕,向上滑动投篮!注意篮板是会移动的哦!看看你的命中率是多少! 实现原理 为了能达到好的投篮效果,在网上找了一个投篮机参数,大致按照实际参数设置篮框大小,球的大小,以及篮框的位置。 碰撞器: 篮板直接使用 盒碰撞器组件(BoxColliderComponent),篮球使用的是 球碰撞器组件(SphereColliderComponent)。 因为没有 圆环碰撞器组件,所以对于篮球框用了多个 球碰撞器组件 实现碰撞检测。 小球轨迹: 由于完全采用了物理引擎计算,要让小球轨迹如我们所预期一样,得遵循物理原理。这里需要的知识是 位移与加速度、速度、时间的关系。 我们可以分为三个方向来考虑,需要计算初始速度 V_z 和 V_y 。在 Z 轴方向可以看作匀速运动,Y 轴方向为匀加速运动。其中 Z 轴 和 Y 轴 的位移我们已经设定好了,我们只需要设定抛球时间 t 就可以计算出初速度。注意 Y 轴的末速度要满足与初速度相反,才能达到图中抛物线的效果哦。参考计算方式如下: const CONST_H = 1.25 ; const CONST_S = 2.3 ; const CONST_G = -10 ; const CONST_T = 0.8 ; const CONST_V

DevOps技术实践中的一些总结

狂风中的少年 提交于 2021-01-03 15:42:02
嘿嘿嘿 点击上方可以订阅哦! 作者 泽阳,运维工程师,实际工作经验4-5年,经历了传统运维到自动化运维整个过程。整理分享DevOps、CICD、编程开发、监控、日志等相关技术实践!定期更新,来吧一起踏上技术的征途!整理的最新Jenkins实践文档 http://zeyangli.github.io 公众号:devopsadmin 微信:proc_code 定期分享技术实践! 1 简介 上周做了点什么呢? 最近经常健忘~~~,所以必须得动笔了,正式开战 哈哈 容器构建资源池的部署 制品库管理试运行 JenkinsShareLibrary优化 简单做个总结,给自己一个交代,也许对于阅读的你也会有帮助。 2 容器构建资源池的部署 构建平台是部署在vm中,一个生产的Master和N多个Slave。由于构建项目的增加,平台现有项目1k+,并发数量也增加了很多。问题也来了。磁盘空间不足/构建执行器不足等等问题。 原因分析: 1. 并行数量增多。 2. 构建与部署在同节点完成,节点压力大。 3. 每个slave默认配置15个执行器,不够用。 解决思路: 1. 构建与发布在不同的节点完成。(CICD分离) 2. 将构建节点固定在容器中。(解决系统资源不足问题) 具体实施: 1. 创建通用的JenkinsSlave镜像。(slave启动密钥能够通过环境变量传入)

Spring Cloud Alibaba 实战

心不动则不痛 提交于 2021-01-02 12:05:01
点击上方蓝色“ 程序猿Damon ”,选择“设为星标” 回复“ yeah ”获取整理的学习资料 2018年11月左右,Springcloud 联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 Spring Cloud Alibaba,并发布了首个预览版本。随后,Spring Cloud 官方Twitter也发布了此消息。 目前版本如下: Spring Cloud Spring Cloud Alibaba Spring Boot Spring Cloud Hoxton 2.2.0.RELEASE 2.2.X.RELEASE Spring Cloud Greenwich 2.1.1.RELEASE 2.1.X.RELEASE Spring Cloud Finchley 2.0.1.RELEASE 2.0.X.RELEASE Spring Cloud Edgware 1.5.1.RELEASE 1.5.X.RELEASE Spring Cloud Hoxton SR3 前不久发布,基于 Spring Boot 2.2.5 构建。也就是说最新的版本是 Hoxton 版本。但怕最新版有沙坑,我们本次用的是Greenwich 版本。而且,阿里巴巴的官方版本有的对于一些依赖有问题,我们用的是孵化器版本,其依赖关系: Spring Cloud Spring

使用Java带你打造一款简单的外卖系统

不羁的心 提交于 2020-12-24 07:27:55
【一、项目背景】 随着互联网时代的快速发展,便捷人民的生活,提高生活质量,外卖系统应运而生。 人们也喜欢享受着“足不出户,美食到家”的待遇,促使网上订餐行业快速发展。 【 二、 项目目标 】 1. 设计一款应用程序-外卖系统,有文字和图片显示,通过选择一种或多种食物,每种食物可以选择一份或多份,点击结算后,进行总价的统计。 2. 实现标题文字滚动和颜色定时变化。 3. 实现消费多少钱免配送费以及消费多少钱满减。 【 三、项目实施 】 使用eclipse软件开发,先上效果图,如下图所示。 可以看到在界面上有文字和图片显示,通过选择一种或多种食物,每种食物可以选择一份或多份,结算功能,标题文字滚动加颜色变化的功能。 接下来,小编带大家进行具体的实现,具体的实现步骤如下。 【四、实现步骤】 一、首先实现外卖系统购物车的窗口 public static void main ( String[] args ) { // TODO Auto-generated method stub Takeout t = new Takeout(); t.setTitle( "饶洋外卖" ); t.setSize( 720 , 550 ); t.setVisible( true ); } 使用new关键字创建Takeout类; setTitle表示设置界面的标题; setSize(宽,高)表示窗体大小;

每日算法系列【LeetCode 907】子数组的最小值之和

主宰稳场 提交于 2020-12-19 00:08:12
题目描述 给定一个整数数组 A,找到 min(B) 的总和,其中 B 的范围为 A 的每个(连续)子数组。 由于答案可能很大,因此返回答案模 10^9 + 7。 示例1 输入: [3,1,2,4] 输出: 17 解释: 子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。 最小值为 3,1,2,4,1,1,2,1,1,1,和为 17。 提示 1 <= A.length <= 30000 1 <= A[i] <= 30000 题解 这题意思是,遍历所有的连续子数组,然后求所有子数组中最小值之和。 暴力法 遍历所有区间,然后对于每个区间找出最小值求和。这种方法时间复杂度是 ,显然不可行。 暴力法优化 对于区间左端点 i ,遍历所有的右端点 j ,然后维护最小值,时间复杂度可以降到 ,但还是太高了。 单调栈 既然我们不能先遍历区间,然后找最小值,那么我们不如顺序倒过来,对于每个值,我们找有多少区间里面,它是最小值。 对于一个数字 A[i] 来说,如果在某个区间 [j, k] 里面它是最小值,那么 [j, k] 包含 A[i] 的子数组的最小值也一定是 A[i] 。所以我们只需要找出最大的那个区间,使得 A[i] 是最小值就行了。 另一个性质是,左右端点 j 和 k 是相互独立的,不会影响,因为 [i, k]

每日算法系列【LeetCode 153】寻找旋转排序数组中的最小值

无人久伴 提交于 2020-12-18 13:52:58
题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 (例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2])。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 示例1 输入: [3,4,5,1,2] 输出: 1 示例2 输入: [4,5,6,7,0,1,2] 输出: 0 题解 这题如果直接遍历一遍的话,时间复杂度是 ,也能过。但是这题显然想要你更快,也就是用 的时间复杂度来做出来,那我们只能选择用二分法。 因为序列从中间切开来,然后调换过顺序,所以是先上升,再下降一下,然后再上升。并且第二段上升的最大值 是一定小于第一段上升的最小值 的,所以最小值一定是第二段的第一个数。 假设我们二分的时候,左端点 l ,右端点 r ,中间点是 m 。 如果 ,那说明左端点在第一段,右端点在第二段。这时如果 ,那么 m 也在第一段,所以 l 需要右移;否则的话 m 在第二段, r 需要左移。 如果 ,那么两个端点都在第二段,是单调上升的,那最小值一定就是 l 。 代码 c++ class Solution { public : int findMin ( vector < int >& nums) { int l = 0 , r = nums.size() - 1 ; while (l < r) { int m = (l + r) / 2 ;

HW防守 | Windows应急响应基础

烂漫一生 提交于 2020-12-18 01:39:08
常见的应急响应事件分类: web入侵:网页挂马、主页篡改、Webshell 系统入侵:病毒木马、勒索软件、远控后门 网络攻击:DDOS攻击、DNS劫持、ARP欺骗 入侵排查思路 web入侵:对中间价日志进行分析 系统入侵:计划任务,系统爆破痕迹(系统日志),进程进行分析 网络攻击:流量分析 1、 检查系统账号安全 查看服务器是否有弱口令,远程管理端口是否对公网开放 检查方法:查看网络连接对应的进程 Netstat -anb | findstr 进程 查看日志: 打开控制面板——系统和安全——查看事件日志,就进入了事件查看器 打开左侧事件查看器(本地)——Windows日志——安全 筛查4776事件(远程登陆日志)查看是否有登陆频率过高事件 重要的事件 ID(安全日志,Security.evtx) 4624:账户成功登录 4648:使用明文凭证尝试登录 4778:重新连接到一台 Windows 主机的会话 4779:断开到一台 Windows 主机的会话 2、查看服务器是否存在可疑账号、新增账号。 检查方法:打开 cmd 窗口,输入lusrmgr.msc命令,查看是否有新增/可疑的账号,如有管理员群组的(Administrators)里的新增账户,如有,请立即禁用或删除掉。 3、查看服务器是否存在隐藏账号、克隆账号。 检查方法: a、打开注册表 ,查看管理员对应键值。 b、使用D盾

【每日算法Day 97】经典面试题:求两个数组最小差

萝らか妹 提交于 2020-12-13 19:36:16
题目链接 LeetCode 面试题 16.06. 最小差 [1] 题目描述 给定两个整数数组 a 和 b ,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差。 说明: 1 <= a.length, b.length <= 100000 -2147483648 <= a[i], b[i] <= 2147483647 正确结果在区间 [-2147483648, 2147483647] 内 示例1 输入: {1, 3, 15, 11, 2}, {23, 127, 235, 19, 8} 输出: 3,即数值对(11, 8) 题解 首先最暴力的方法就是 暴力枚举两个数组中的所有数对,然后计算绝对值最小的差值,这样显然是会超时的。 所以我们先分别对两个数组从小到大进行排序,然后用双指针的方法来计算。 初始的时候 分别指着两个数组的第一个元素。 然后计算 的绝对值,如果比当前最小值还要小,就更新最小值。 然后判断 和 的大小关系。如果 ,那么如果增大 ,差值只会越来越大,所以只能增大 。同理如果 ,那就增大 。 最后如果其中一个数组遍历完了就结束遍历。 是不是有点类似归并排序的合并数组过程?但是这里有个区别,最后遍历完之后,一定会有某个数组还没遍历完。而那些没遍历的数字其实都大于另一个数组中最大的数,所以没有必要再和另一个数组最大值做差值了。这样差值只会越来越大,没有意义

基于FPGA的图像旋转设计

感情迁移 提交于 2020-12-04 07:40:41
该项目是参加 2019届全国大学生FPGA大赛的作品, 系统主要实现视频任意角度旋转 。利用国产的紫光同创公司的 FPGA芯片作为开发平台,视频图像从摄像头实时采集,经过算法旋转后,通过hdmi接口显示。该项目最终晋级决赛,并获得紫光同创企业特别奖。 一,图像旋转原理 图像旋转是指图像按照某个位置转动一定角度的过程,旋转中图像仍保持这原始尺寸。图像旋转后图像的水平对称轴、垂直对称轴及中心坐标原点都可能会发生变换,因此需要对图像旋转中的坐标进行相应转换。 如图,原图像经过顺时针旋转角度为 θ 后,源图像的坐标为 P0 ( Xo, Yo ) 的点移动到了 P1(X 1 , Y 1 )。 经过推导,可以得到上述的 P0 和P1 的坐标变换关系式。 二, MATLAB 仿真 方案一: 【正向预设】从原图映射到目标图像 在此方案中,实现代码的方式是正向的思路,将原图中的像素点的坐标进行坐标的旋转,然后直接幅值到输出的图像中,此方案旨在找到输入坐标与输出坐标之间的代数对应关系。 在该方法中,首先将原始坐标以及目标坐标放入了极坐标中,并且通过在极坐标中的关系,找到了同时满足 X0,Y0,X1,Y1四个参量的方程组,以此来解出对应的坐标关系,并以此为基础得到了输入与输出之间的矩阵运算关系如下: Matlab代码实现如下: clear all clc % 读入图片 im = imread('1

AkShare-股票数据-两市停复牌

百般思念 提交于 2020-11-29 08:36:48
作者寄语 提供一个小接口,提供两市停复牌的数据,方便查询。 AkShare-更新记录 "stock_em_tfp" # 两市停复牌数据 股票 两市停复牌 接口: stock_em_tfp 目标地址: http://data.eastmoney.com/tfpxx/ 描述: 获取东方财富网-数据中心-特色数据-两市停复牌 限量: 单次获取指定交易日的停复牌数据 输入参数 名称 类型 必选 描述 trade_date str Y trade_date="2020-03-25" 输出参数 名称 类型 默认显示 描述 代码 str Y 名称 float Y 停牌时间 float Y 停牌截止时间 float Y 停牌期限 float Y 停牌原因 float Y 所属市场 float Y 预计复牌时间 float Y 接口示例 import akshare as ak stock_em_tfp_df = ak.stock_em_tfp(trade_date="2020-03-25") print(stock_em_tfp_df) 数据示例 代码 名称 停牌时间 ... 停牌原因 所属市场 预计复牌时间 0 600766 园城黄金 2020-03-11 09:30 ... 拟筹划重大资产重组 沪市A股 2020-03-25 1 200505 京粮B 2020-03-25 09:30 ...