摘要:
提要 在图形的计算中,比如旋转、缩放、平移、投影等操作,矩阵都扮演着极其重要的角色,它是操作图元的基本工具。虽然很多的图形API已经封装好了这些矩阵操作,但是理解这些矩阵操作的原理会非常非常有帮助,比如说我们可以通过一些矩阵的快捷计算来加速你的代码。 如果你有一些线性代数的基础,看下面的内容的时候也不会很轻松,因为有点难且比较没意思,如果没有修过这门课,最好把线性代数这本书拿来看看,因为这些东西真是基础中的基础,而且非常的重要。 齐次记法(Homogeneous Notation) 空间一个点对应的是一个空间的位置,一个向量对应一个方向,两者都可以用一个三维向量 V = (Vx, ... 阅读全文
摘要:
在Web开发中,一般都分3层。 Controller/Action 控制层, Service/Business 服务层/业务逻辑层, Dao 数据访问层/数据持久层。 在学习和工作的实践过程中,我发现很多功能是比较通用的,我们可以把他们抽象成API接口。 下文通过一段较长的代码,Hibernate实现,来展示如何设计一些通用的API。 说明:代码只是起到一个示范(Demo)的作用,实际上完全可以做得更强大。 我最近已经在现在的基础上大大改进了,现在把比较基础的实现分享给大家。 package cn.fansunion.demo.db.dao; import java.lang.reflect. 阅读全文
摘要:
我们通过jni调用C代码不可能每次只是去调一个方法,通常,我们需要传递一些值过去。例如,播放电影,那就肯定需要你把电影的 url给 C的播放器吧,等等。接下来就看一看怎么去传递这些值: 首先是最简单的 int类型:申明变量 //c实现两个数相加 public native int add(int x ,int y);调用方法 //Java把两个int给c语言,c语言处理完还给java int result = add(10,20); Toast.makeText(this, result+ "", 0).show(); C代码实现JNIEXPORT jint... 阅读全文
摘要:
分治策略有一种“大事化小,小事化了”的境界,它的思想是将原问题分解成两个子问题,两个子问题的性质和原问题相同,因此这两个子问题可以再用分治策略求解,最终将两个子问题的解合并成原问题的解。有时,我们会有这样的疑惑:分治策略是将原问题分解成子问题,子问题又用分治策略求解,那分治策略到底是什么?这种感觉就像听到有人说“因为我说我没有做错事,所以我没有做错事”一样,让我们不知道他“没有做错事”的真正原因是什么。对于上面的困惑,我本科的老师告诫过我们:“对于分治策略,当你们想不明白的时候只需记住两点:一是怎样将问题分解成两个子问题,二是要有递归出口。”举个小例子:八个小伙伴为确定谁是领头,决定比武论,两 阅读全文
摘要:
#include #include #include using namespace std;const int maxn = 100;//树的节点const int maxm = 10000;//树的边。int s[maxn];struct node { int tail; int next;}edge[maxm];void dfs(int u) {//搜索一遍。 for(int i = s[u]; i != -1; i = edge[i].next) { printf("%d -> %d\n", u, edge[i].tail); dfs(ed... 阅读全文
摘要:
题意:黑先生新买了一栋别墅,可是里面的电灯线路的连接是很混乱的(每个房间的开关可能控制其他房间,房间数#include #include #include using namespace std;int n,m,p;int ed1[11][11],ed2[11][11];int vis[11][1 = 0) { printf("The problem can be solved in %d steps:\n",q[final].step); print(final); } else { printf("The pr... 阅读全文
摘要:
正确答案:B 一、USING INDEX的实验:1、USING INDEX可以让你在创建主键、唯一性约束的时候使用指定的索引或创建索引、或修改索引的存储结构。OK,我先不用USING INDEX,创建主键时Oracle自动创建唯一索引。gyj@MYDB> alter table emp add constraint emp_id_pk primary key(employee_id);Table altered.gyj@MYDB> select INDEX_NAME from user_constraints where CONSTRAINT_NAME='EMP_ID_PK 阅读全文
摘要:
这次讲讲绘制的几种模式吧,不过还是比较浅显,刚接触不久,还实在没这个实力道出个所以来。FMX下,我们可以切换GDI,D2D,GPU这三种模式,只要通过全局变量就可以轻松搞定。如何设置GlobalUseDirect2D :=False,那么将采用GDI的模式进行绘制。通过调试模式我们可以知道当前的Canvas的状态 其他的以此类推,如果在某种模式下出现bug,可以切换到另一种模式中,可能就规避了bug。 比如,在GDIPlus的模式中,你无法成功的设置字体,原因很简单,字体被写死了,FMX.Canvas.GDIP.pas的第506行,让人欲哭无泪啊。 要是你坚定的使用GDI绘图,那么改成如下.. 阅读全文
摘要:
可可工作室出品:欢迎使用可可直播视频播放器:http://pan.baidu.com/share/link?shareid=3291150676&uk=4111208708 网上大多数直播软件都会提供一个功能就是自定义,这个由于版本问题,而为了让用户看到自己想看的频道,可以让用户自己添加找到的源,然后进行播放,俗话说法不责众,这个功能是如何实现的呢,其实也是很简单的,无法就是记录下用户添加的数据,然后保存下来,这里主要用到了数据库,用户点击自己添加的源,程序会从数据库取出链接,例如http,rtsp等开头的流媒体链接,具体的实现如下,我们是在之前流媒体开发之--直播实现的基础上继续完善 阅读全文
摘要:
在上一篇文章中我们从服务器读取配置并解析成了UpdateInfo对象。这一篇文章将介绍如何将信息比对,并显示更新对话框,具体流程如下: //判读服务器的版本号和客户端的版本号是否相同 if(isNeedUpdate(versiontext)){ Log.i(TAG, "弹出升级对话框"); showUpdateDialog(); }在SplashActivity的onCreate方法中判读服务器版本号和客户端版本号是否相同获取客户端当前版本号的方法 /** * 获取当前应用程序的版本号 * * @return */ private String getVersion... 阅读全文