自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sunburst的专栏

心通了,一切皆有可能

  • 博客(81)
  • 收藏
  • 关注

原创 博客已经转移

博客转移,转移到http://www.cnblogs.com/tangmiao/

2017-10-09 14:42:23 355

原创 OSG的impostor的几个问题

最近做impostor优化终于做出来了,里面有几个问题记录一下,最重要的是照相机问题,getGraphicsContext()->setSwapCallback()要发生在camera初始化好后,例如viewer->getCamera()方法要在viewer→realize()之后,但是这里其实还没初始化完全,我本来想把物体投影到屏幕下,看下物体在屏幕的屏幕坐标,但是一直未负数,后面老大告诉我说,v

2017-09-20 16:18:52 475

原创 OSG的几个矩阵

模型矩阵:利用glMultMatrix()来实现Transform. 视点矩阵:又叫观察矩阵,利用glulookat()来实现照相机的位置变化来实现视点的变换 投影矩阵:利用glFrustum()或者gluPerspective()来实现,生成投影矩阵或者正视矩阵 视口变换:利用setViewport来实现,实现显示窗口的大小

2017-09-13 14:31:12 1182

原创 OSG的渲染树与状态树

有点懒。。不想画图,随便说一说吧,其实状态树你可以看成是一个二叉树,非叶子节点StateGraph和叶子节点ReaderLeaf组成,然后一个ReaderLeaf你可以看成有一个Drawable对象,但是场景渲染的是渲染树,状态树只是为了好转换成渲染树而存在的。 渲染树你也可以看成一棵二叉树,RenderStage(渲染台)是根节点,RenderBin是非叶子节点的子节点,RenderLeaf是根

2017-09-03 16:46:49 1353

原创 OSG相机的一些函数解析

setRenderOrder函数是用来设置相机渲染的顺序的,通常一般从属相机要最先渲染,因为怕从属相机渲染的场景把主相机渲染的场景给覆盖了 setViewport函数是设置相机的视口的大小,视口就相当于照相机的底片,是相片成型的最终的大小 setProjectionMatrixAsFrustum是设置透视投影矩阵(是一个椎体),一般是用来裁剪的 作者初学者水平有限,有错误恳请指

2017-08-31 11:05:22 867

原创 OSG的traverse()方法解析

目前正在研究贴图代替物体的方法,就顺便看了看Impostor的源码,发现里面是重写了traverse()方法,便研究了一下,首先traverse()方法是虚函数,重写以后,把该节点如果挂在场景下面,那么就会一直执行traverse()里面的东西,其次,traverse()能一直遍历完所有节点是因为里面还有一个accept方法会继续让节点遍历,accept方法这里就不多说了,如果你重写了travers

2017-08-30 14:59:42 2916

原创 OSG的setViewMatrixAsLookAt解析

首先,OSG里面的setViewMatrixAsLookAt函数是根据OpenGL里面的glulookat函数修改而来的,这里你最好可以先去看看http://blog.csdn.net/ivan_ljf/article/details/8764737这篇文章,三个参数的意思通俗来讲就是相机在世界坐标的位置,相机对准物体的方向(相机可以对准整个三维空间任一一点),相机绕自己中心点旋转的方向(就是说相机

2017-08-28 15:19:56 2341

原创 未排序数组中累加和为给定值的最长子数组

例如给出 数组 1 1 1 2 1 1(数字可正可负可0),要求定值为3 则子数组应该[1,1,1],输出长度为3#include<iostream>#include<algorithm>#include<map>using namespace std;int max(int a, int b){ if (a > b) return a; return b;}int m

2016-04-05 09:56:19 735 1

原创 HDU 1003-Max Sum

Max SumTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 194228 Accepted Submission(s): 45313Problem Description Given a sequence a[1],a[2],a

2015-12-30 01:17:15 400

原创 P1059 积木城堡

描述 XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡。城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木。小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不容易倒。所以他在垒城堡的时候总是遵循这样的规则。 小XC想把自己垒的城堡送给幼儿园里漂亮的女孩子们,这样可以增加他的好感度。为了公平起见,他决定把送给每个女孩子一样高的城堡,这样可以避免

2015-12-05 22:46:28 818

原创 P1057 盖房子

描述 永恒の灵魂最近得到了面积为n*m的一大块土地(高兴ING^_^),他想在这块土地上建造一所房子,这个房子必须是正方形的。 但是,这块土地并非十全十美,上面有很多不平坦的地方(也可以叫瑕疵)。这些瑕疵十分恶心,以至于根本不能在上面盖一砖一瓦。 他希望找到一块最大的正方形无瑕疵土地来盖房子。 不过,这并不是什么难题,永恒の灵魂在10分钟内就轻松解决了这个问题。 现在,您也来试试吧。 格

2015-12-05 21:31:25 632

原创 搭建双塔-P1037

2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难。为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔。 Mr. F有N块水晶,每块水晶有一个高度,他想用这N块水晶搭建两座有同样高度的塔,使他们成为一座双塔,Mr. F可以从这N块水晶中任取M(1≤M≤N)块来搭建。但是他不知道能否使两座塔有同样的高度,也不知道如果能搭建成一座双塔,这座

2015-12-03 22:04:01 496

原创 小飞侠的游园方案-P1028

描述 经过抽签选择,小智将军第一个进入考场。 菜虫:(身上散射出华贵(?)的光芒)欢迎你,第一位挑战者!! 小智:……(走到菜虫身后,关灯)女王陛下,虽然我们国家现在很富裕,但也请您不要浪费电来用这么大功率的灯泡。 菜虫(汗):啊啊爱卿所言甚是那么,你的题目是……我们的情报组织探听到敌人的重要将领——小飞侠星期天会邀他的灵儿妹妹到公园去玩。公园里有很多娱乐项目,可并不是每一项他们都喜欢,所以

2015-12-02 22:40:17 668

转载 vijos-p1002-过河

描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)。坐标为0的点表示桥的起点,坐标为L的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是S到T之间的任意正整数(包括S,T)。当

2015-11-29 01:17:57 1198

原创 打印整数划分

#include<iostream>#include <math.h>using namespace std;void print(int n,int a[],int k){ if(n<=0){ for (int i=0;i<k;i++) { cout<<a[i]; if (i<k-1)

2015-11-08 12:26:52 618

原创 数列

题目描述 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,… (该序列实际上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2, 3^0+3^1+3^2,…) 请你求出这个序列的第N项的值(用10进制数表示)。 例如,对于k=3,N=100,正

2015-10-30 23:40:30 503

原创 开心的金明

题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要。他还从因特网上查到了每件物品的价格(都是

2015-10-26 23:51:40 363

原创 重新拾起刷题- 明明的随机数

题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 输入格式 输入有2行,第1行为1个正整数,表示所生成的随机数的个数: N

2015-10-26 00:20:08 509

原创 笔试面试排序算法大总结(干货)

排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性 冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定 选择排序 O(n^2) O(n^2)

2015-09-19 23:14:17 543

转载 C++类中的const和static

C++类中的const和static 一、const成员变量: const成员变量只是在某个对象的生存期内是常量,而对于整个类而言是可变的。一个类可以创建多个对象,每个对象的const成员变量的值是可以不同的。 因此不能在类声明中初始化const成员变量(普通的const变量必须在定义的时候初始化)。const成员变量的初始化工作必须在构造函数初始化列表中进行。二、static成员变量:stat

2015-08-23 16:14:49 389

原创 结构体内存对齐详解

.在32位机器上 设有以下说明和定义: 1234567891011 typedef union { long i; int k[5]; char c; } DATE; struct data { int cat; DATE cow; double dog; } too; DATE max; 则语句 printf(“%d”,size

2015-07-31 00:06:16 604

转载 判断一个单链表是否有环及环的链接点

给定一个单链表,只给出头指针h: 1、如何判断是否存在环? 2、如何知道环的长度? 3、如何找出环的连接点在哪里? 4、带环链表的长度是多少?解法: 1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。 2、对于问题2,记录下问题1的碰撞点p,slow、fast从该点开始,再次碰

2015-07-14 00:29:33 431

原创 分遗产

题目描述有一位阿拉伯老人,生前养有11匹马,他去世前立下遗嘱:大儿子、二儿子、小儿子分别继承遗产的1/2、1/4、1/6。 儿子们想来想去没法分:他们所得到的都不是整数,即分别为11/2、11/4、11/6,总不能把一匹马割成几块来分吧? 聪明的邻居牵来了自己的一匹马,对他们说:“你们看,现在有12匹马了,老大得12匹的1/2就是6匹,老二得12匹的1/4就是3匹, 老三得12匹的1/6就是2匹

2015-07-12 14:17:32 1143

原创 用C++实现最小公倍数和最大公约数

#include<iostream>using namespace std;int main(void){ int x, y, num1, num2, temp; printf("请输入两个正整数:\n"); scanf("%d %d", &num1, &num2); if(num1 < num2)//交换 { num1^=num2;

2015-07-11 18:46:12 5586

原创 智力题(阿里巴巴校招)

500张骨牌整齐地排成一行,按顺序编号为1、2、3、……、499、500。第一次拿走所有奇数位置上的骨牌,第二次再从剩余骨牌中拿走奇数位置上的骨牌,以此类推。请问最后剩下的一张骨牌的编号是? A.128 B.250 C.256 D.500答案是C 第一次后剩下250个偶数:2,4,6,8……498,500(2的倍数留下,2的一次方) 第二次后剩下125个偶数:4,8,12,16……496

2015-07-09 02:19:19 2888

原创 static的用法(C)

#include<stdio.h>#include<iostream>using namespace std;static int a=1;void fun1(void){ a=2;}void fun2(void){ int a=3;}void fun3(void){ static int a=4;}int main(int arg){ cout<<

2015-06-13 17:37:52 417

原创 指针数组的应用

问题描述 在主函数中输入10个长度不超过10的字符串,用另一个函数对它们排序,然后在主函数输出这10个已排好序的字符串。要求用指针数组来处理#include<stdio.h>#include<string>#include<iostream>using namespace std;void sort(char *p[],int n){ int i,j,k; char temp

2015-06-11 19:02:47 622

原创 按之字形顺序打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : va

2015-06-07 09:11:00 603

原创 其他进制转十进制(C++)

#include<iostream>#include<math.h>using namespace std;int main(){ int n; cin>>n; int m;//进制数 cin>>m; double sum=0.0; int k=0; while (n!=0) { int a=n%10;

2015-06-06 20:41:16 1062

原创 从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/c

2015-05-22 19:18:44 638

原创 用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()) {//第二个栈为空时 while(!stack1.empty()) {

2015-05-18 13:05:52 507

原创 用++操作符完成其它操作符的转换

在只容许使用++操作符的情况下,请完成下面代码,实现减法、乘法和除法。注意:假设操作数全为正整数,并且可以不考虑性能,不能使用–,*,/等操作符。 a). 乘法: int multi(int opl,int op2){//op1*op2} b). 减法: intsub(int op1,int op2){//op1-op2} c). 除法: int div(int op1,int op2)

2015-05-18 06:43:57 964 1

原创 链表建立多项式

#include<stdio.h>#include<stdlib.h>typedef struct Node{ int xishu; int zhishu; struct Node *next;}NoDe;void Build(NoDe *L){ NoDe *p,*q; int a,b; //p=(NoDe*)malloc(sizeof(N

2015-05-14 17:33:17 1137

原创 亲密数

#include <stdio.h> #include <stdlib.h> int qingmiaoduishu(int n){ int i,sum; sum=1;for(i=2;i<=n/2;i++) if (n%i==0) sum+=i; return sum;}void main(){ int a,b,c; for (a=

2015-05-14 11:20:02 710 1

原创 十进制转化为其他进制(C语言)

#include<stdio.h>int a[1000];int k=0;void change(int x,int r){ while (x) { a[k++]=x%r; x=x/r; }}int main(){ int x,r,i; printf("输入一个十进制数:\n"); scanf("%d",&

2015-05-14 11:05:15 3484

原创 Two Sum

Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the target, where in

2015-05-14 05:04:01 487

原创 same-tree

Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally identical and the nodes have the same value./** * Definition

2015-05-13 19:45:19 525

原创 maximum-depth-of-binary-tree

Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node./** * Definition for binary tree * stru

2015-05-13 19:32:36 724

原创 single-number

Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra

2015-05-13 19:22:45 454

原创 查找数组里面的数

有一个int型数组,每两个相邻的数之间的差值不是1就是-1.现在给定一个数,要求查找这个数在数组中的位置。 其实思想就是跳跃查找,因为你知道了一个数,那么它第二个数最多相差1,第三个数最多相差2,而可以用目标数减去这个数来排除一些多余的查找,比如你要的数是10,第一个数是2,那么它前7个数无论如何都达不到10,只有在第8个数才有可能,所以可以直接判断第8个数。 下面是别人的代码借用一下思想大概就

2015-05-12 01:34:58 930

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除