导航

2012年3月5日

摘要: 两个函数的函数原型如下:glVertex(GLfloat x, GLfloat y);gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);简单的说前者的两个参数所代表的坐标点,必须落在后者参数所形成的坐标系内,不然该点就在viewport之外。举个例子:void display(){glClear(GL_COLOR_BUFFER_BIT);glPointSize(9);glBegin(GL_POINTS);glVertex2f(67.0,67.0);//6行glEnd();glFlush();}voi 阅读全文

posted @ 2012-03-05 22:28 网名还没想好 阅读(9749) 评论(0) 推荐(1) 编辑

摘要: 在OpenGL中有两个比较重要的投影变换函数,glViewport和glOrtho.glOrtho是创建一个正交平行的视景体。一般用于物体不会因为离屏幕的远近而产生大小的变换的情况。比如,常用的工程中的制图等。需要比较精确的显示。 而作为它的对立情况, glFrustum则产生一个透视投影。这是一种模拟真是生活中,人们视野观测物体的真实情况。例如:观察两条平行的火车到,在过了很远之后,这两条铁轨是会相交于一处的。还有,离眼睛近的物体看起来大一些,远的物体看起来小一些。glOrtho(left, right, bottom, top, near, far), left表示视景体左面的坐标,rig 阅读全文

posted @ 2012-03-05 21:30 网名还没想好 阅读(422) 评论(0) 推荐(1) 编辑

摘要: 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解。 想必这种误解的根源在于国内某著名的C程序设计教程。如果这篇文章能够纠正许多中国程序员对数组名和指针的误解,笔者就不甚欣慰了。借此文,笔者站在无数对知识如饥似渴的中国程序员之中,深深寄希望于国内的计 阅读全文

posted @ 2012-03-05 10:25 网名还没想好 阅读(4146) 评论(3) 推荐(6) 编辑

2012年2月27日

摘要: Class类型,选择器Selector以及指针函数本系列讲座有着很强的前后相关性,如果你是第一次阅读本篇文章,为了更好的理解本章内容,笔者建议你最好从本系列讲座的第1章开始阅读,请点击这里。上一章笔者介绍了在Objective-C里面继承的概念。有了继承的知识我们可以重复的使用很多以前生效的代码,这样就大大的提高了代码开发的效率。在本章,笔者要向同学们介绍几个非常重要的概念,Class类型, 选择器Selector以及指针函数。我们在实际上的编程过程中,也许会遇到这样的场景,那就是我们在写程序的时候不能确切的知道我们需要使用什么类,使用这个类的什么方法。在这个时 候,我们需要在我们的程序里面动 阅读全文

posted @ 2012-02-27 10:24 网名还没想好 阅读(298) 评论(0) 推荐(0) 编辑

2012年2月26日

摘要: 1,动态分配 动态分配由两个函数来处理:malloc和free。使用一个参数来调用malloc以请求内存,该函数指定了所需的字节数。malloc返回指向请求的数目的字节的一个指针,随后可以将这个指针强制转换成想要的数据类型,并且赋给一个变量,而这个变量的类型就是指向所请求的类型的一个指针。曾今,当没有可用的内存分配时,malloc返回NULL,然而,OS X和iOS使用延迟分配,malloc返回所请求的内存一个指针,但是,在执行一段代码来访问该内存之前,系统不会为该请求分配内存资源。结果,如果你多次请求内存,并且没有使用该内存或没有释放该内存,那么malloc可能会返回一个非NULL的值,即. 阅读全文

posted @ 2012-02-26 22:55 网名还没想好 阅读(556) 评论(0) 推荐(0) 编辑

2012年2月24日

摘要: 原文作者Andrew Huang <bluedrum@163.com> 转载请注明作者 @selector()基本可以等同C语言的中函数指针,只不过C语言中,可以把函数名直接赋给一个函数指针,而Object-C的类不能直接应用函数指针,这样只能做一个@selector语法来取. 它的结果是一个SEL类型。这个类型本质是类方法的编号(函数地址)?因此我们有如下代码。一.取得selector值.C函数指针 int add(int val) { return val+1; } int (* c_func)(int val); //定义一个函数指针变量 c_func = add ; //把 阅读全文

posted @ 2012-02-24 21:06 网名还没想好 阅读(181) 评论(0) 推荐(0) 编辑

摘要: 1.NSLog会自己加上换行符2.NSLog在Debug下会写到system.log中3.NSLog会自动加上时间和进程信息.4.NSLog支持%@去打印一个对象类型,当使用%@时,它会给对象发送消息description,所以如果你组合了一个新的类,你可以通过给自己重载description来实现打印DEBUG 比如[cpp] view plaincopy-(NSString*)description; 阅读全文

posted @ 2012-02-24 16:43 网名还没想好 阅读(261) 评论(0) 推荐(0) 编辑

摘要: 版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。版本 1.1发表于2010-03-08四系统自动创建新的autorelease pool在生成新的Run Loop的时候,系统会自动创建新的autorelease pool(非常感谢网友hhyytt和neogui的提醒)。注意,此处不同于xcode在新建项目时自动生成的代码中加入的autorelease pool,xcode生成的代码可以被删除,但系统自动创建的新的aut 阅读全文

posted @ 2012-02-24 16:17 网名还没想好 阅读(168) 评论(0) 推荐(0) 编辑

摘要: 版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com,且必须包含此版权声明的完整内容。版本 1.1发表于2010-03-08二口诀与范式1 口诀。1.1 谁创建,谁释放(类似于“谁污染,谁治理”)。如果你通过alloc、new或copy来创建一个对象,那么你必须调用release或autorelease。换句话说,不是你创建的,就不用你去释放。例如,你在一个函数中alloc生成了一个对象,且这个对象只在这个函数中被使用,那么你必须在这个函数中调用releas 阅读全文

posted @ 2012-02-24 16:15 网名还没想好 阅读(143) 评论(0) 推荐(0) 编辑

摘要: 版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。版本 1.1 发表于2010-03-08前言初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不透,程序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有所帮助,也欢迎大家一起探讨。此文涉及的内存管理是针对于继承于NSObject的Cla 阅读全文

posted @ 2012-02-24 16:11 网名还没想好 阅读(173) 评论(0) 推荐(0) 编辑