首页 文章 精选 留言 我的

精选列表

搜索[AI开发],共10000篇文章
优秀的个人博客,低调大师

Skyline桌面二次开发之路径漫游(C#)

所谓路径漫游:即创建一个动态对象和一条由多点组成的线,然后让动态对象沿着线飞行 首先绘制一条线,实际上路径漫游是不需要绘制线的,我这里只是为了确认动态对象是否沿着线路在飞行,代码如下: //绘制路径 double[] cVerticesArray = null; cVerticesArray = new double[] { 116.35, 27.98, 0, 116.45, 28.98, 0, 116.45, 28.11, 0, 116.65, 28.45, 0, }; ILineString pILineString = sgWorld.Creator.GeometryCreator.CreateLineStringGeometry(cVerticesArray); IColor66 color = sgWorld.Creator.CreateColor(255, 0, 0, 125); var polyline = sgWorld.Creator.CreatePolyline(pILineString, color); 接下来创建动态对象,代码如下: var dynamicObject = this.sgWorld.Creator.CreateDynamicObject(0, DynamicMotionStyle.MOTION_GROUND_VEHICLE, DynamicObjectType.DYNAMIC_IMAGE_LABEL, @"F:\项目管理\智慧抚州\使用的Fly\data11\汽车图标\整车.png", 50, AltitudeTypeCode.ATC_TERRAIN_RELATIVE, "", "动态对象"); 参数说明: 第一个参数0:一组IRouteWaypoint66对象,后续向动态对象中添加 第二个参数DynamicMotionStyle:移动方式,是一个枚举类型,具体的效果大家可以去试一下 第三个参数DynamicObjectType:动态对象类型,是一个枚举类型,该参数也决定了你第四个参数的文件类型 第四个参数:由于第三个参数选择的Image_label,这里我选择了一张图片 第五个参数50:文件缩放大小 第六个参数AltitudeTypeCode:高度模式 动态对象创建完成之后就是创建路径的拐点,代码如下: var wayPoint1 = this.sgWorld.Creator.CreateRouteWaypoint(116.35, 27.98, 0, 2000); var wayPoint2 = this.sgWorld.Creator.CreateRouteWaypoint(116.45, 28.98, 0, 2000); var wayPoint3 = this.sgWorld.Creator.CreateRouteWaypoint(116.55, 28.11, 0, 800); var wayPoint4 = this.sgWorld.Creator.CreateRouteWaypoint(116.65, 28.45, 0, 800); 然后将拐点添加到动态对象中: dynamicObject.Waypoints.AddWaypoint(wayPoint1); dynamicObject.Waypoints.AddWaypoint(wayPoint2); dynamicObject.Waypoints.AddWaypoint(wayPoint3); dynamicObject.Waypoints.AddWaypoint(wayPoint4); dynamicObject.CircularRoute = false; dynamicObject.RestartRoute(0); 最后调用飞行到对象,就可以实现路径漫游效果: sgWorld.Navigate.FlyTo(dynamicObject.ID, ActionCode.AC_JUMP);

优秀的个人博客,低调大师

安卓日常开发记录-键盘的相关处理方式

点击EditText之外隐藏键盘的实现方式 重写事件分发dispatchTouchEvent,注意不要在onTouchEvent中操作,因为onTouchEvent并非任何情况下都会被调用。通过计算EditText在布局中的位置,进行键盘的显示和隐藏处理 /** * 点击区域在输入框之外都隐藏掉键盘 * @param ev * @return */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocus(); if (isShouldHideInput(v, ev)) { hideSoftKeyboard(v); } return super.dispatchTouchEvent(ev); } // 必不可少,否则所有的组件都不会有TouchEvent了 if (getWindow().superDispatchTouchEvent(ev)) { return true; } return onTouchEvent(ev); } public boolean isShouldHideInput(View v, MotionEvent event) { if (v != null && (v instanceof EditText)) { int[] leftTop = { 0, 0 }; //获取输入框当前的location位置 v.getLocationInWindow(leftTop); int left = leftTop[0]; int top = leftTop[1]; int bottom = top + v.getHeight(); int right = left + v.getWidth(); if (event.getX() > left && event.getX() < right && event.getY() > top && event.getY() < bottom) { // 点击的是输入框区域,保留点击EditText的事件 return false; } else { return true; } } return false; } 监听键盘弹起和隐藏的方式 自定义一个view,因为项目中用的LinearLayout,所以以这个布局为例,将其作为根布局,通过布局的高度判断键盘的隐藏和显示,通过接口将结果回调出去 需要在AndroidManifest中配置键盘属性 android:windowSoftInputMode="adjustUnspecified|stateHidden" android:windowSoftInputMode="adjustResize|stateHidden" 经过测试上边两种配置都可以实现,但是下边这种不行,具体原因,你可以去看看 adjustUnspecified adjustResize adjustPan的区别 android:windowSoftInputMode="adjustPan|stateHidden" package com.anjuke.library.uicomponent.view; import android.content.Context; import android.util.AttributeSet; import android.widget.LinearLayout; /** * Author: renzhenming * Time: 2018/8/11 16:58 * Email: renzhenming@58ganji.com * Version:12.3 * Description: 用于监听键盘的隐藏和出现 */ public class AjkAdjustSizeLinearLayout extends LinearLayout { public AjkAdjustSizeLinearLayout(Context context) { super(context); } public AjkAdjustSizeLinearLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public AjkAdjustSizeLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); } private int mChangeSize = 200; /** * 键盘弹起时,布局的高度因为受到挤压,会变小,所以新的高度h减去旧的高度oldh会得到一个负数 * 这个负数的绝对值等于键盘的高度,而且基本可以确定的是键盘的高度一定是大于200的,所以满足 * (oldw != 0 && h - oldh < -mChangeSize)就可以当做键盘弹起 * * 键盘收起时,布局高度恢复到最初,新的高度h减去oldh得到一个正数,这个数值正好就是键盘的高度 * 所以满足(oldw != 0 && h - oldh > mChangeSize)时,可以看做是键盘收起 * @param w * @param h * @param oldw * @param oldh */ @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); if (oldw == 0 || oldh == 0) return; if (boardListener != null) { if (oldw != 0 && h - oldh < -mChangeSize) { boardListener.keyBoardVisible(Math.abs(h - oldh)); } if (oldw != 0 && h - oldh > mChangeSize) { boardListener.keyBoardInvisible(Math.abs(h - oldh)); } } } public interface SoftKeyBoardListener { void keyBoardVisible(int move); void keyBoardInvisible(int move); } SoftKeyBoardListener boardListener; public void setSoftKeyBoardListener(SoftKeyBoardListener boardListener) { this.boardListener = boardListener; } }

优秀的个人博客,低调大师

区块链开发公司谈区块链的主要特征

近年来,随着应用的逐渐铺开,区块链技术愈发引人关注。虽然距离大规模应用仍有距离,但关于区块链的讨论日渐深入并逐步趋向理性。基于分布式记账、集体合约和智能共识等机制,区块链技术最初呈现出的去中心化、开放共享、真实可靠等信息特性一度引发高度关注,其中去中心化的特征尤为受追捧,对去中心化的关注自区块链诞生以来就一直存在。 区块链技术是一种不依赖第三方、通过自身分布式节点进行网络数据的存储、验证、传递和交流的一种技术方案。因此,有人从金融会计的角度,把区块链技术看成是一种分布式开放性去中心化的大型网络记账薄,任何人任何时间都可以采用相同的技术标准加入自己的信息,延伸区块链,持续满足各种需求带来的数据录入需要。 1、开放、共识,任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点间基于一套共识机制,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。 2、交易透明、双方匿名,区块链的运行规则是公开透明的,所有数据信息也是公开的,因此每一笔交易都是对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与节点都是匿名的。 3、去中心、去信任,区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过数字签名技术进行验证,无需互相信任,只要按照系统既定的规则进行,节点之间不能也无法欺骗其他节点。 4、不可篡改、可追溯,单个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这几乎不可能发生。区块链中的每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易的前世今生。 区块链能够构建去中心化信用底基,超越时间与空间,将数据信息永久性、去中心化记录,避免时间延误及人为错误等问题,在全球物联网打造出高效率价值链。诸如贷款申请问题,区块链能够凭借程序算法自动记录与其相关的海量信息,存储在区块链网络任何一个电脑中,构建难以篡改可信任数据库,实现信息共享。

优秀的个人博客,低调大师

2.Android开发环境再普及以及ADB的使用技巧

Android Studio 官网下载地址镜像网站gradle文件下载网址API文档 更改背景主题 默认快捷键 Ctrl+Alt+S 进入setting页面,在Theme中可以选择不同的主题,其中Darcula主题号称是程序员专用背景主题: 更改字体大小颜色 Editor——>Colors&Fonts: 设置快捷键,以及Keymaps下拉列表可以设置风格: Editor标签中的General标签中选择Code Completion 选项,在“Code Sensitive completion”里面选择“None”,即“弹出代码提示”这个功能不区分大小写。 ADB命令使用技巧 ADB——Android Debug Bridge,是连接手机和电脑的“脐带”。Windows系统下,当我们通过USB连接手机时,还需下载一些手机助手,手机助手会自动识别手机并下载对应的手机驱动,而手机助手也是使用ADB来实现它的功能的。 查看Log ls查看文件 Install、Push、pull 删除应用 查看系统盘符 输出所有已经安装的应用 配合grep,过滤结果: 模拟按键输入 adb shell intput keyevent 3 -------------------------------------------------- intput keyevent 82 menu intput keyevent 3 home intput keyevent 19 up intput keyevent 20 down intput keyevent 21 left intput keyevent 22 right intput keyevent 66 enter intput keyevent 4 back 模拟滑动输入 adb shell input touchscreen <x1><y1><x2><y2> 查看运行状态 可以列出很多运行状态,详细的命令可以查看API文档。 比如列出Activity的运行状态,同时过滤“tencent”关键字: root@vbox86p:/ #dumpsys activity activities|grep "tencent" ADB命令来源 查看源码,\system\core\toolbox和 \frameworks\base\cmds 两个目录下就是所有ADB命令和Shell命令的来源了。 点击到目录的孩子节点文件,可以看到具体的执行源码。

优秀的个人博客,低调大师

Apache 年度报告:Java 是项目开发使用最多的语言

Apache 2018 年年度报告显示,该生态系统今年生态系统活跃增长,甚至会有盈余。Apache 基金会拥有 300 多个项目和超过 6,700 个代码贡献者,现在是世界上最大的开源基金会。 项目领域涵盖从大数据到云计算再到内容管理的所有内容,最大的代码存储库用于处理 OpenOffice 的开源文档。 Apache 软件基金会总裁 Phil Steitz 表示,2018 年会是基金会发展很好的一年,他们会继续确保 Apache 软件基金会提供优质可靠的服务,并让 Apache Software Foundation 成为一个轻量级,轻度管理的组织。 最重要的是为确保可持续发展的基础奠定坚实的财政基础。 Apache 软件基金会基础设施副总裁 David Nalley 表示,去年提供的 GitBox 服务在今年得到了显着的扩展和改进,并希望所有使用 Git 的项目都将转向这个新的工作流程,计划明年放弃最初在内部使用的 Git 工具。 该报告揭示了基金会的持续增长: 在顶层项目中,194 个委员会共管理 319 个项目,其中 16 个是新项目,现在有 54 个项目处于孵化阶段 基于这上述项目,原始代码在过去一年中已被下载 900 万次。 共有 3,280 名提交者提交了 7100 万次代码。经换算,在 222,684 次提交中,贡献了超 6 亿美元的价值 从项目使用的代码语言的分布来看,Java 第一,占所有项目的 58%,第二位是 C,第三位是 Python,第四位和第五位是 C++ 和 Javascript,两者差距不大。

优秀的个人博客,低调大师

实战 Docker+Kubernetes 微服务容器化(三)-微服务开发

1 微服务业务分析 thrift 官网 安装 下载 boost 如果報錯error: Bison version 2.5 or higher must be installed on the system! 解決辦法:mac中默認安裝了bison 2.3版本,並配置了路徑在path中。安裝最新的版本3.0.5, 並將/usr/bin中的bison刪除,將bison 3.0.5 複製到/usr/bin中 cd /usr/bin brew install bison brew unlink bison source ~/.bash_profile 或者export PATH=/usr/local/Cellar/bison/3.0.5/bin:$PATH 新建 demo 文件 生成对应语言文件 生成众多的方法

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册