`
westice
  • 浏览: 114240 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
    木有操作系统的电脑要靠简单的bios中断程序操作计算机设备     调用中断程序的一般方法为先查手册设置好相关寄存器的值,然后调用中断指令。     13h中断为磁盘操作。     ah = 3 写磁盘     ah = 2 读磁盘#include <dos.h> //dos接口     驱动器号送入dl     磁头号送入dh     磁道号送入ch     扇区号送入cl     扇区数送入al     es内存段地址     bx内存偏移地址       比如我需要把一个512字节的启动二进制代码写入软盘的启动扇区: union ...
    python中struct方便对底层数据进行操作,比如把一个数 i = 65536保存为一个4B的int型数据 s0 = struct.pack("<I",i)      s0为一个字符串,长度为4,即占四个字节,这样方便传输与保存二进制数据。    "<I",意思是按小端保存,>为大端,I为无符号整型。    还有其它类型参数:    c:char      b:signed byte                 B:unsigned byte    h:short    H:unsigned shor ...
   python开发效率高,实际项目时python搭建整个项目框架,关键模块用c编写,是个不错的办法!    c函数对python的接口要按规则写。    比如一个阶乘c函数的头文件定义:    dll.h: #ifndef LIB_H #define LIB_H extern "C" long __declspec(dllexport)factorial(int n); //接口定义 #endif      dllmain.c:   #include "dll.h" long factorial(int n ...
       这个游戏很简单,可以操纵的飞机不断发子弹,前面不断有敌机来袭,子弹打中敌机然后敌机和子弹消失,最后实现了网络互联功能,允许两个人在局域网中不同机器上操作各自的飞机,平且两个游戏界面是同步的。 我这样设计的:自己维护一个飞机,子弹队列,敌机队列,将网络来的数据打包成另一个飞机,子弹队列,敌机队列,所以这里面传送的数据有自己飞机数据,子弹队列,敌机队列,这些数据通过TCP在服务器和客户端之间不断更新,传递。      图形用opengl渲染,由于python不能直接访问指针,通过网络只能传递字符串型,所以传送二进制数据有点问题,自己写了对函数,用于字符串和二进制数的转换,每个数由 ...
      贪食蛇不是fps,没有那么高的效率,不可能更新窗口里面的全部内容,这样就需要一个算法来处理这个问题, 算法:假设小蛇由一个蛇头,n个蛇身组成,整个蛇的前进由蛇头控制,方向由用户控制。 每次刷新时,从蛇尾开始遍历,把(n-1)方块的位置赋给n方块,直到n为1,最后将蛇头的位置赋给0方块。 显示时不需更新窗口中每一个图片,如果蛇总共(n+1)个方块,则只需更新(n+2)个方块,(n+1)个蛇方块当然更新,还有一个就是这一次蛇腾出来的空间(即上一次蛇尾的位置)用土地本来的图片替换,这样整个蛇就会跟着蛇头跑不会留下痕迹。 实现了一个基本功能版,靠(wasd)控制方向,里面会随机出现蛋 ...
  开始实习啦!要用python,   第一个练手项目,用wxpython写界面,实现了连连看的1连通,2连通,3连通   算法:1,如果相邻肯定连通,判断两个格子是否在同行同列且之间是否空白,如果空白则连通            2,1连通不满足,判断两个格子能否构成一个直角,通过两个选中格子p1p2生成另两个对角点p3p4(四个点构成一个矩形),判断p3能否和p1p2够成1连通,或者p4能否和p1p2构成1连通,满足一个条件即可            3,2连通也不满足,从p1周围(同行同列)找一个和p1构成1连通的p5,判断p5是否能和p2构成2连通,如果满足则属于3连通   ...
   正在恶补数据结构,今天看到了二叉树,huffman编码,发现压缩程序很有意思,就按照huffman的编码思想实现了一个,没有经过算法改进,但是没有用第三方库,还能压缩一点空间,花了一天写完的。编码效率还是很菜。   只要调用compress  和decompress就可以压缩,解压,当然不是zip和rar,离他们还差十万八千里啊!     #include <iostream> #define LEFT 0 #define RIGHT 1 using namespace std; typedef struct huffmanTreetype{ ...
  c++面对对象的精髓-动态多态。   有动态就有静态,静态是在编译期完成的,如一个类里面有相同名字,返回值的函数,通过不同的参数来区分。(overload)   动态多态,函数用virtual修饰。在子类中override父类的函数funcA,然后再调用这个子类对象的funcA,那当然是调用这个子类对象的funcA,但是如果用父类指针指向这个子类呢? 如:father *fa_pointer = &son;fa_pointer->funcA(),这样就是调用父类中的funcA,如果funcA加了virtual修饰呢?奇迹就发生了,将调用子类中的funcA,这就是动态多态,在 ...
    经过2个多月断断续续的开发,半个月的审核,第一款iphone平台的应用dreamspace终于上线了! 玩法是输入一个关键字从google解析图片url,然后下载图片,对图片进行处理(基于opencv,在iphone上用这个花了不少功夫),处理后进行图片渲染(opengl-es,和opengl有点区别),从而模拟人梦境的飘忽不定。每幅图片处理十几秒,完了后慢慢过渡到下一张,图像处理和下载是分开的(可以连续不断的下载,不出网络问题可以一直运行下去)。除了这些还可以用手指绘画,可画点,圈圈,擦除。在这里打个广告让javaeye的兄弟们指教指教啊,目前定价1.99美金,还有免费的示例。 接 ...
为了把一串点连成光滑的曲线,先研究贝塞尔曲线,又搞B样条插值。。。。都没有成功(数学没那么强)。 后来在 “[翻译] AGG 之贝塞尔插值”http://liyiwen.iteye.com/blog/705489 。看到一种比较好的方法: 运用贝塞尔曲线的光滑性来穿过这些点。 大致思路就是 先算出相邻原始点的中点,在把相邻中点连成的线段平移到对应的原始点,以平移后的中点作为控制点,相邻原始点为起始点画贝塞尔曲线,这样就保证了连接处的光滑。而贝塞尔曲线本身是光滑的,所以就把这些原始点用光滑曲线连起来了。 我封装了一个函数,留着以后用。 (c++版,其它语言只要把数组和可变数组稍微 ...
从网上搜集来的两控制点贝塞尔曲线生成法:     int n=controlPoint.size()-1; // vector<POINT>存储控制点 int i,r; float u; CvPoint *p=new CvPoint[n+1]; BezierPoint.clear(); //u的步长决定了曲线点的精度 for(u=0;u<=1;u+=0.01){ for(i=0;i& ...
 由于要用到多线程技术,之前用过windows API,但那是windows平台的。想试一下跨平台的,网上说boost有线程库,但那是个庞然大物,编译麻烦。无意中看见Zthread,这个小巧玲珑, sourceforge就有源码下载。第一次运行就成功了,好神奇啊! 小例子:   #include <iostream> #include <zthread/Runnable.h> #include <zthread/Thread.h> using namespace std; using namespace ZThread; // Zth ...
OpenCV笔记: 查找轮廓 主要函数是 cvFindContours(tour_buf,storage,&contour,sizeof(CvContour), CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); tour_buf 是需要查找轮廓的单通道灰度图像 ,storage 是临时存储区 , contour是存储轮廓点的CvSeq实例, CV_RECT_EXTERNAL 只查找外围轮廓,还有CV_RECT_TREE ...
  一直对编辑器里字符串查找功能感觉很神奇,今天脑子转了一转,用自己的想法简单实现了。 我受数字电路课里画状态图的习题的启发,比如一个字符串“hello”,设置一个状态变量state为0,没有查找到h时state为0,查到h时变为1 ...
发现xml存储,查看方便。所以想用用它,但是解析它不太容易。我用C++自带的string类 勉强实现了这一功能。 我生成了这样一串xml:(carinfo.xml) <carnode><id>0</id><time>11:32</time><event>这家伙违章了!</event></carnode><carnode><id>1</id><time>11:32</time><event>这家伙违章了!</event&g ...
Global site tag (gtag.js) - Google Analytics