新普金娱乐网址


“冰花男孩”戳中全民的泪点:身无长物,努力读书才是出路数学

opengl基础学习专题 (二) 点直线和多方形

  • 二月 14, 2019
  • 数学
  • 没有评论

青春到了,百花竞放,
西花厅的海棠花又盛开了。看花的主人已经走了,走了12年了,离开了我们,他不再回到了。

题外话

你不是热爱海棠花吗?解放初期你偶尔看到这几个海棠花开放的庭院,就爱上了海棠花,也就爱上了那一个庭院,选定那几个庭院,到这些盛开着海棠花的院子来居住。你住了整整26年,我比你住得还长,到近来曾经是38年了。

  随着学习的进步,越来越觉得温馨很水.关于上一篇博文中推荐用2个 学习opengl的 基于VS二零一六的 simplec框架.存在

海棠花将来依然开得鲜艳,开得雅观,招人保养。它结的硕果味美,又甜又酸,开白花的结马尔马拉海棠,开红花的结南海棠,果实累累,挂满枝头,真像五指山。秋后在
海棠成熟的时候,大家就把它摘下来吃,有的把它做成
果子酱,吃起来越发好吃。你在的时候,海棠花开,你白天平常在大忙的做事之中,抽几分钟散步欣赏;夜间你工作辛勤了,有时散步站在
甬道旁的海棠树前,总是抬着头看了又看,从它那里拿走部分花的美色和花的香气扑鼻,得以稍稍休息,然后又去继续工作。你散步的时候,有时约小编一起,有时和您身边工作的同志们一道。你看花的背影,就像是就在明日,就在自笔者的目前。大家在团结欣赏大家一同喜爱的海棠花,但不是昨日,而是在12年在此以前。12年早已死亡了,这12年自然是不久的;可是,偶尔我感觉是久久漫长的。

一些难题.

海棠花开的时候,叫人那么喜爱,不过花落的时候,它又是清静的,花瓣落满地。有人说,落花比开放更雅观。龚自珍在《乙丑杂诗》里说:“落红不是无情物,化作春泥更护花。”你喜爱
海棠花,作者也喜爱海棠花。你在参与卡拉奇议会的时候,咱们家里的海棠花正在开放,因为您不可以来看那年盛开着的光明的花朵,小编就尤其地剪了一枝,把它压在图书里头,经过鸿雁带到
索菲亚给你。笔者想你在那么繁忙的做事当中,看一眼海棠花,大概使你稍微回味和可以休息,那样也是一种享受。

   1.这一个框架基于VS 的Debug 格局下,没有考虑Release版本

您不在了,不过每到海棠花开花的时候,平日有爱花的人来看花。在花下树前,我们一边赏花,一边惦念您,想念你,就好像你仍在我们当中。你距离了那么些庭院,离开它们,离开大家,你不会再来。你到何地去了呀?作者觉得你一定随着春季暖和的风,又踏着凛冽春天的雪,你通过春风的吹送和踏雪的足迹,已经深远到祖国的崇山峻岭、
平原,也飘进了 沧澜江、 黑龙江,经过黄河、刚果河的
运移,你进去了漫无边际的海洋。你,不仅是为我们的国家,为大家国家的国民服务,而且你为全人类的进步事业,为世界的一方平安,一贯在那边跟人民并肩战斗。

   2.那一个版本中chead,c基础头文件中有个别宏设计的不佳,例如

当你告别人世的时候,作者询问你。你是忧党、忧国、忧民,把满腹忧恨埋藏在您的心扉,跟你一块走了。不过,你未曾想到,人民的力量,人民的觉醒,大家党的主干特出领导人,很快就一口气粉碎了“几个人帮”。“五人帮”粉碎之后,祖国的后天,正在开着改造开放之花,越开越好、越大、越健康,正在结着丰富的收获,使大家的国度昌盛,给我们的全员带来幸福。

//4.0 控制台打印错误信息
#ifndef CERR
#define CERR(fmt,...) \
    fprintf(stderr,fmt,##__VA_ARGS__),putchar('\n')
#endif/* !CERR */

//4.1 控制台打印错误信息并退出
#ifndef ERR_EXIT
#define ERR_EXIT(fmt,...) \
    CERR(fmt,##__VA_ARGS__),exit(EXIT_FAILURE)
#endif/* !ERR */

曾记否?遥想当年,我们中间通过
鸿雁传书,大家中间的鸿雁飞过欧亚大六,越过了大海,从名城法国巴黎,到
北海之滨的斯图加特。多谢绿衣使者把书信送到大家的手里。有一回,小编豁然接到你寄给自个儿的印有李卜克内西和
卢森堡像的
明信片,你在明信片上写了“希望大家多人,未来也像她们几人那么,一同上断头台”那样勇敢的革命的誓词。那时我们都插手了无产阶级先锋队的行列。宣誓的时候,大家都下定狠心,愿为革命而死,洒热血、抛头颅,在所不惜。大家之间的书函,可以说是情书,也可以说不是情书,大家信里谈的是变革,是互相的共勉。
我们的柔情总是和革命交织在联名,由此,我们革命几十年,出生入死,艰险辛勤,丹舟共济,悲喜分担,有时战斗在协同,有时分散两地,无畏无私。在我们的革命生涯里,总是坚定地、泰然地、沉着地拼搏下去。大家的柔情,经历了几十年也未曾其余消减。
革命的向上,建设的向上,将是极致美好的、美好的。一百多年来,越发是共产党建立今后,大家很多的勇于儿女和爱国革命志士,为了弥补祖国,建设新中国,被仇敌的屠刀、枪弹杀害。他们的忠贞埋在祖国一四处青山下,他们的鲜血染红了祖国的全球山河。在我们党的鲜艳的镰刀斧头红旗上,在我们的五星国旗上,有她们血染的威仪。无数的新秀倒下了,大家这么些幸存者,为继承他们没有已毕的事业,双肩上的天职很重很重。恩来同志,有外宾问您,你哪个地方来的如此精神的生命力去工作?你说:一想开大家死去的那个烈士,大家亲爱的战友们,就有使不完的劲,要加倍地努力干活,全心全意地为平民服务。这也激励着本身,使自己最好振奋。作者要
老骥伏枥,志在千里,
烈士暮年,壮心不已,把自个儿有生的绵薄和余热,更好地为百姓多服一点务。

    尤其客观的是

您和自己原不相识,姓名不知。一九二〇年,在小编国吸引了
五四爱国运动,反帝、反封建、反卖国贼,要
救亡图存。那是以学员为宗旨的包蕴工农商的全国的最广泛的五次高大爱国运动,反对签订凡尔赛和约。就在本次活动高潮中,我们相遇,相互都有印象,是很冷漠的。在活动中,大家那批相比较升高的学习者,社团了“觉悟社”。那时候,大家接触得相比多一点。不过,大家那时候都要做带头人。我们“觉悟社”相约,在方方面面运动时代,不谈恋爱,更谈不到结婚了。这个时候,我听他们说您主持独身主义,作者还有个天真的想法,觉得大家那批朋友能支援你完结您的愿望。小编是站在如此一种立场上比较你的。而自个儿那会儿对婚姻抱着一种悲观厌恶的想法:在尤其时期,3个才女
结了婚,终身就完了。所以在自我读书的时候,路上遇见结婚的花轿,觉得那个妇女完了,当时就一向不考虑结婚的题材。那样,大家互相之间,都是尤其自然的,没有其余其余目标,只是为了大家联合的拼搏,发扬爱国主义,追求新思潮,追求提高。就是那般的,没有其余个体的意味,没有其余个人目的的过往,发展起来。我们树立起来的友情,是不行尊重的。小编从未想到,在我们独家后,在欧亚多个陆上上,在通讯之间,大家提升了询问,增长了情绪,尤其是我们都建立了同步的革命理想,要为
共产主义奋斗。三年过去,纵然你寄给我的信比过去来得勤了,信里的语意,笔者满没有在心,一贯到您在来信中,把你对我的渴求肯定地指出来,从友谊发展到相爱,那时作者在意了,考虑了。经过考虑,于是大家就定约了。不过,大家定约后的通信,照旧以革命的移动、互相的读书、革命的道理、未来的事业为主要内容,找不出作者爱你、你爱本人的字眼。你加入了党,小编进入了共产主义青年团,大家遵循党的暧昧,相互没有打招呼。大家的合计受了国际、国内新思潮的影响,大家相互走上了协同的征途,那使我们的心绪不只是个体的相爱,而是回涨到为革命、为卓绝共同奋斗,那是我们可以相爱的最可相信的底蕴;而且,我们一向是滴水穿石把革命的益处、国家的好处、党的好处置身第二个人,而把个体的业务、个人的利益置身第1个人。大家在革命道路上是百折不挠的,宁为玉碎的,不管蒙受任何忙绿险阻,都以奋进地去拼搏,不计个人的优缺点,不计个人的流血就义,不计夫妇的诀别。

//错误打印宏
#define CERR_EXIT(fmt,...) \
 fprintf(stderr,"[%s:%d]", __FILE__, __LINE__), fprintf(stderr, fmt, ##__VA_ARGS__), fputs("\r\n",stderr)

我们于一九二四年的九月成家了。当时大家渴求民主,须求改造,须要革命,对
旧社会全体的寒酸束缚、一切旧风习,都要彻底化解。我们那时没有可以登记的地点,也不需求哪些证婚人、介绍人,更不曾讲排场、讲阔气,大家就很粗略地,没有进行什么仪式,住在一起。在变革之花开放的时候,
大家的爱情之花并开了。
你的侄辈让您讲你自个儿的恋爱轶闻,你曾说,就是看到小编能坚忍不拔变革。小编也来看你那一点。所以,我们之间何人也未曾计较什么人的面目,计较本性有啥差别,为
共产主义的精良努力,那是最可相信的久远的相爱的基石和保管。作者与您是
素昧生平,不是一拍即合,更不是恋爱至上。大家是透过无意的腾飞,两地相互通讯的领悟,到有意的、经过考验的结合,又通过几十年的征战,结成那样一种战友的、伴侣的、相爱始终的、共同生活的夫妇。把大家的相爱溶化在平民当中,溶化在同志之间,溶化在朋友中间,溶化在青年小孩子一代。因而,
大家的痴情生活不是大概的,不是为爱情而爱情,大家的爱意是远大的,是固定的。大家一向不曾感觉相互有哪些鸿沟。咱们是基于大家的革命事业、大家的共同理想相爱的,将来又发现大家有很多同等的喜悦,那也是大家生存和谐、内容活跃的二个原则。

    那里的支持宏需求再度规划

每当自身回想过去,浮想联翩,好像又赶回大家的青年时期,并肩战斗的活着中去,心潮澎湃,久久不可以平静。小编以往老了,可是本人要人老心红,志更坚,生命不息,战斗不止,努力为庶人服务。

  
 3.原先的sc_log 模块,简单的日志记录系统.适用于单用户八线程格局.随着项目标增添,须要援助多用户.要求重构,让其有着海量多用户日志记录能力

老同志、战友、伴侣,听了那个你会 含笑九泉的。

      4.急需丰富一个Session模块,适用多用户

感悟

    5.中间有个别模块必要重构,用树结构替代链表结构,进步查找速率.

回忆05年首先次知道他们【从前不认得邓大外婆】,准确的来说应该是在贴吧里,看到关于他们的纪要。那么些时候才还不太懂,于今也不太懂,还怎么都不知道,可是却被他们的情意所震撼,《西花厅的海棠花又开了》背了少数遍,忘了背,背了忘,不过他们的爱恋自个儿却平素记得。那多少个年超越亚欧大陆的鸿雁传书,那多少个年走过的不方便岁月,那多少个年早就经历的各种,因为她的开朗,他的硬挺,她的灵气,他的不凡就那样逐步走着。作者认为他们最浪漫的瞬无论顺境如故逆境都有,延河边转转,广场里的舞者,一封不像情书的情书…岁月走的这么慢,慢到她记得她的女神,然后邀约他在雪中穿行,可又那么快,不知不觉他们度过银婚,金婚,走到了最后。曾经所经历的,或然都曾在她脑中缓慢闪过,那一个可歌可泣的回看都曾让他热泪盈眶。

以上这几个就是推荐学习opengl 使用 simplec框架近期不适的地方.争取下1个本子全体搞好.加班太多了,真不想……

图片 1


圣胡安的周邓回顾馆是一个看五人秀恩爱的好去处,于少年时期听先生讲全市公开课听他们说周邓纪念馆,当前卫无见过恩师哭的那么难过,可能是他曾与那位年代的大侠一起渡过那么一段时间,亦大概明日复出的欢送场景使他流泪,亦没有想到可怜鲁钝的少年会被叫起来回答全市公开课上的标题,年少无知,只道当初是平凡,不曾想过去特别无知的少年会如此挂念他的教授,那年的光阴静好,可以说自家从忘记他的背影。她和他尤其时期的同事们天天清晨五点放学,不收任何用度去为祥和的学习者补习功课,她原本可以回家为和谐的闺女教教数学,和本人的对象一起骑行在凤凰山下,又可能与他的姬友们一同谈谈家长里短,离开你们后本人才察觉,原来学习不佳的学员老师们一齐可以不去理会,只要你不去闹事,不去触碰那根高压线,没有人去关切你,作者是何等希望本身当年十月份能再见你一遍,再听你讲【十里长街送总理】
或是是周总理的旺盛濡染了你,而你又染上了自笔者,作者才会把B站的纯收入捐献给什么命途多舛之人吧!
周恩来、邓颖超的子弟时代是在巴拿马城渡过的,他们在圣路易斯相识、相知、相爱并一起走上革命道路。两位伟人始终把丹佛看做第壹家门,临终前他们分别留下遗书将骨灰撒在祖国的山河大地,撒在拉合尔海河。为永久怀恋铭记周恩来邓颖超的伟业和神圣品格

享受3个程序员伤感的传说

诗经中有一篇《甘棠》,蔽芾甘棠,勿剪勿伐,召伯所茏。蔽芾甘棠,勿剪勿败,召伯所憩。蔽芾甘棠,勿剪勿拜,召伯所说。讲的是召公辅佐年幼的周宣王时,常坐在甘棠树下处理政务,政通人和,各得其所,他死后国人看到那颗甘棠树便会想起召公的雨滴。先人已逝,海棠依然,千古流芳,一如召公!
斯人已逝,魂佑疆土!

  有一天夜晚,多少个程序员吃完饭,碰见了不应当碰见的人.发现自个儿都以备胎,

肉桂色蒙蒙的,又阴又冷。长安街两旁的人行道上挤满了男女老少。路那样长,人这样多,向西望不见头,向南望不见尾。人们臂上都缠着黑纱,胸前都佩着白花,眼睛都瞅着周总理的灵车将要开来的主旋律。壹个人满头银发的太婆拄着拐杖,背靠着一棵洋槐树,焦急而又耐心地等候着。一对青春夫妇,老公抱着小女儿,内人领着六八岁的幼子,他们挤下了人行道,探着身躯张望。一群泪痕满面的红领巾,相互扶着肩,踮着脚望着,瞧着……

互相之间慰藉说.

下午先河降下来。几辆前导车过去之后,总理的灵车缓缓地开来了。灵车四周挂着黑褐和色情的挽幛,下面装裱着白花,严肃,得体。人们心理沉痛,目光随着灵车移动。好像有何人在冷清地指挥。老人、青年、小孩,都不约而同地站直了肉体,摘下帽子,静静地看着灵车,哭泣着,顾不得擦去腮边的眼泪。

    依旧上去写写代码压压惊吧.哈哈

就在那十里长街上,大家的周总理迎送过多少位出自本省的国际友人,陪着毛子任检阅过些微次人民群众。人们时时幸福地看看周总理,看到他矫健的身体,慈祥的脸面。可是今日,他冷静地躺在灵车里,渐行渐远,和我们永别了!


灵车缓缓地发展,牵动着相对人的心。许多少人在走道上追着灵车跑。人们多么期待车子能停下来,希望时刻能停下来!可是灵车稳步地远去了,最终毁灭在氤氲的夜景中了。人们依然面向灵车开去的取向,静静地站着,站着,好像在等待周总理回来。
——————【十里长街送总理】

正题

本条世界总有部分大家所不清楚的劳苦。
在某时某地,一定有人收受着生活带来的折腾,恐怕无力伸出帮手,但本人由衷希望时刻给你的煎熬终有尽时,未来的您将首当其冲,实力强大到不害怕任何坏运气。

本次课程所要讲的是绘制不难的几何图形,在实质上绘制从前,让我们先纯熟一些定义。

点亮一束光吹灭它呢,愿你的守护神能聆听到你的祈愿。

一、点、直线和多方形
我们了解数学(具体的说,是几何学)中有点、直线和四头形的定义,但那几个概念在处理器中会有所差距。
数学上的点,只有地点,没有大小。但在微机中,无论总结精度如何加强,始终不可以代表二个海阔天空小的点。另一方面,无论图形输出设备(例如,显示屏)如何规范,始终无法出口八个无边无际小的点。一般情况下,OpenGL中的点将被画成单个的像素(像素的概念,请自个儿寻找之~),即使它可能丰富小,但并不会是无穷小。同一像素上,OpenGL可以绘制许多坐标唯有稍微区其他点,但该像素的实际颜色将在于OpenGL的贯彻。当然,过度的专注细节就是钻牛角尖,我们大可不必花费过多的生命力去探究“多少个点什么画到同一像素上”。
无异于的,数学上的直线没有大幅度,但OpenGL的直线则是有宽度的。同时,OpenGL的直线必须是个别长度,而不是像数学概念那样是但是的。可以认为,OpenGL的“直线”概念与数学上的“线段”接近,它能够由八个端点来规定。
多边形是由多条线段首尾相连而形成的关闭区域。OpenGL规定,三个两头形必须是二个“凸多边形”(其定义为:多边形内任意两点所规定的线条都在多方形内,因而也得以推导出,凸多边形不可以是空心的)。多边形可以由其边的端点(那里可称之为顶点)来规定。(注意:尽管运用的绝大多数形不是凸多边形,则最终输出的效果是未定义的——OpenGL为了效用,放宽了反省,那恐怕引致突显错误。要防止那些破绽百出,尽量使用三角形,因为三角形都以凸多边形)

图片 2

能够设想,通过点、直线和多边形,就足以组合成各样几何图形。甚至于,你可以把一段弧看成是很多短的直线段相连,这几个直线段丰裕短,以至于其长度小于2个像素的涨幅。那样一来弧和圆也能够表示出来了。通过位于差距平面的持续的小多边形,我们还足以整合三个“曲面”。

图片 3

二、在OpenGL中指定顶点
由上述的议论可以驾驭,“点”是全部的根基。
何以指定三个点吧?OpenGL提供了一密密麻麻函数。它们都是glVertex开始,前面跟1个数字和1~2个字母。例如:
glVertex2d
glVertex2f
glVertex3f
glVertex3fv
等等。
数字代表参数的个数,2意味有三个参数,3表示七个,4象征三个(小编精晓多少罗嗦~)。
字母代表参数的档次,s表示拾肆个人整数(OpenGL上将以此类型定义为GLshort),
                  
i表示33人整数(OpenGL少校以此类型定义为GLint和GLsizei),
                  
f表示三九人浮点数(OpenGL团长以此类型定义为GLfloat和GLclampf),
                  
d代表陆拾三个人浮点数(OpenGL少校以此类型定义为GLdouble和GLclampd)。
                   v表示传递的多少个参数将运用指针的办法,见上面的例证。
那一个函数除了参数的类型和个数差别以外,功用是同等的。例如,以下七个代码段的功力是一模一样的:
(一)glVertex2i(1, 3);
(二)glVertex2f(1.0f, 3.0f);
(三)glVertex3f(1.0f, 3.0f, 0.0f);
(四)glVertex4f(1.0f, 3.0f, 0.0f, 1.0f);
(五)GLfloat VertexArr3[] = {1.0f, 3.0f, 0.0f};
      glVertex3fv(VertexArr3);
之后我们将用glVertex*来代表这一七种函数。
只顾:OpenGL的广大函数都是接纳那样的花样,三个同一的前缀再添加参数表达标记,那点会随着学习的深透而有越来越多的认知。

底稿素材,未整理落成。于2.15重复整理

那边扩大一下,在以后的编译器中,可以分辨
5.f 相当于5.0f. 这几个技术推荐用也推荐不用.看人吧. 例如 有时写代码觉得 C99/C11 风格好,

偶尔依然认为C89的风格最稳妥.

举例如下:

//C89
int hoge;
int piyo;

hoge = 16;
piyo = 1;
printf("hoge = %d, piyo = %d\n",hoge,piyo);


//C99 / C11

int hoge = 13;
printf("hoge = %d.\n",hoge);
int piyo = 5;
printf("heoo piyo is %d.\n",piyo);

继承回到正题

三、初阶绘制
一旦以后自个儿曾经指定了好多顶点,那么OpenGL是怎么着知道小编想拿这一个极端来干什么吧?是壹个三个的画出来,依旧连成线?恐怕构成1个三头形?大概做任何什么工作?
为了化解这一标题,OpenGL需求:指定顶点的通令必须含有在glBegin函数之后,glEnd函数以前(否则指定的极端将被忽略)。并由glBegin来指明怎么着行使那一个点。
比如我写:
glBegin(GL_POINTS);
     glVertex2f(0.0f, 0.0f);
     glVertex2f(0.5f, 0.0f);
glEnd();
则那四个点将分别被画出来。要是将GL_POINTS替换成GL_LINES,则八个点将被认为是直线的多少个端点,OpenGL将会画出一条直线。
咱俩还能指定越来越多的顶点,然后画出更扑朔迷离的图样。
单向,glBegin资助的办法除了GL_POINTS和GL_LINES,还有GL_LINE_STRIP,GL_LINE_LOOP,GL_TRIANGLES,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN等.

那边大致对上面五个函数统计如下:

 函数原型:
void glBegin(GLenum mode);
void glEnd(void);
参数表达:
  mode:成立图元的连串。可以是以下数值
  GL_POINTS:把每1个巅峰作为多少个点展开处理,顶点n即定义了点n,共绘制N个点
  GL_LINES:把每壹个巅峰作为五个独门的线条,顶点2n-1和2n之间共定义了n条线条,总共绘制N/2条线条
  GL_LINE_STLacrosseIP:绘制从第1个顶峰到结尾三个巅峰依次相连的一组线段,第n和n+三个极点定义了线段n,总共绘制n-1条线条
  GL_LINE_LOOP:绘制从第1、个极端到最后一个极端依次相连的一组线段,然后最后1个终极和率先个顶峰相连,第n和n+一个极点定义了线段n,总共绘制n条线段
  GL_TEscortIANGLES:把各个终端作为3个单身的三角形,顶点3n-2、3n-1和3n概念了第n个三角,总共绘制N/二个三角形
  GL_TRIANGLE_STPAJEROIP:绘制一组相连的三角形,对于奇数n,顶点n、n+1和n+2定义了第n个三角;对于偶数n,顶点n+1、n和n+2定义了第n个三角,总共绘制N-三个三角形
  GL_TRIANGLE_FAN:绘制一组相连的三角形,三角形是由第一个顶峰及其后加以的终点显然,顶点一,n+1和n+2定义了第n个三角形,总共绘制N-二个三角形
  GL_QUADS:绘制由两个极端组成的一组单独的四边形。顶点4n-3、4n-二,4n-1和4n定义了第n个四边形。总共绘制N/五个四边形
  GL_QUAD_STPRADOIP:绘制一组相连的四边形。每种四边形是由一对极端及其后加以的一对终极共同显然的。顶点2n-1、2n、2n+2和2n+1概念了第n个四边形,总共绘制N/2-三个四边形
  GL_POLYGON:绘制壹个凸多边形。顶点1到n定义了那一个多边形。

本人并不准备在glBegin的种种法子上大作小说。大家可以协调尝试改变glBegin的艺术和极端的地方,生成一些有意思的图画。
程序代码:

void display(void)
{
     glClear(GL_COLOR_BUFFER_BIT);
     glBegin( /* 在这里填上你所希望的模式 */ );
        /* 在这里使用glVertex*系列函数 */
        /* 指定你所希望的顶点位置 */
     glEnd();
     glFlush();
}

把那段代码改成你欢跃的样子,然后用它替换第1课中的myDisplay函数,编译后即可运维。

上边 笔者举多个例子

先画壹个 圆,思路是行贿,根据 圆的参数方程(r*cos
t , r*sin t) ,t 属于[0,2*Pi]

代码如下:

#include <glut.h>
#define _USE_MATH_DEFINES //开启 math.h中默认的常量宏
#include <math.h>

//绘制圆的顶点数
#define _INT_N (20)
/*
*这里绘制 一个圆
*/
static void display(void)
{
    int i;
    GLdouble r = 0.5;

    glClear(GL_COLOR_BUFFER_BIT);

    glBegin(GL_POLYGON);
    for (i = 0;i < _INT_N;++i) {
        double p = 2 * M_PI * i / _INT_N;
        glVertex2d(r*cos(p),r*sin(p)); //打点连线
    }
    glEnd();

    glFlush();
}

int main(int argc, char *argv[])
{
    glutInit(&argc,argv);

    //glut 初始化 为 rgb颜色模式,单缓冲
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

    //glut窗体创建
    glutInitWindowSize(500, 500);
    glutInitWindowPosition(123,456);
    glutCreateWindow("这里测试圆的绘制");

   // 设置绘制函数
    glutDisplayFunc(display);    

    //glut窗体主循环
    glutMainLoop();

    return 0;
}

服从地点代码敲两遍,基本都晓得了.那里再说一些废话,前提你要求搭好环境.搭环境形成后学习就曾经形成了三分一

      学习编程技术 近来 统计 如下

    前线打仗 => 搭环境 hello world + 学习基础api + 项目
=> 可以进去战斗格局了

           后线指挥 => 设计意见 + 抗压和应急化解难点的实力
=> 领跑者

 

其次个例证是画三个五角星

实例图如下:

图片 4

画这么些 五角星 需求 你协调计算各种点的任务,要求初中几何知识. 代码参照如下:

#include <glut.h>
#define _USE_MATH_DEFINES //开启 math.h中默认的常量宏
#include <math.h>

//绘制圆的顶点数
#define _INT_N (20)

//将角度值转成弧度数
#define TO_F_PII(d) \
    (d*(float)M_PI/180)

/*
*这里绘制 一个五角星
*/
static void display(void)
{
    //5x = 360 => x = 72度, x/2 = 36度 数学是不将中国道理的
    GLfloat a = 0.5f;//默认比例是一半 当前屏幕 opengl坐标系 以屏幕中央为(0,0)
    //计算 纵坐标 从上 到下 为 a , a*cos(72度) , -a*cos(36度)
    //计算的横坐标 从左到右 为 -a*sin(72度) , -a*sin(36度), 0, a*sin(36度) , a*sin(72度)

    //A,B,C,D,E 坐标 依次 如下,需要 你自己计算 三角函数
    GLfloat pii72 = TO_F_PII(72.f);
    GLfloat pii36 = TO_F_PII(36.f);
    GLfloat
        pointA[2] = { -a*sinf(pii72), a*cosf(pii72) },
        pointB[2] = { 0.f , a },
        pointC[2] = { a*sinf(pii72) , a*cosf(pii72) },
        pointD[2] = { a*sinf(pii36) , -a*cosf(pii36)  },
        pointE[2] = { -a*sinf(pii36) , -a*cosf(pii36) };


    glClear(GL_COLOR_BUFFER_BIT);


    //从 A->C->E->B->D->A 顺序一笔画成
    glBegin(GL_LINE_LOOP);

    glVertex2fv(pointA);
    glVertex2fv(pointC);
    glVertex2fv(pointE);
    glVertex2fv(pointB);
    glVertex2fv(pointD);

    glEnd();

    glFlush();
}

五角星依然比较高尚的,然而自身一度污染了,热爱亲朋好友吧.多谢她们给了自个儿生命和一切.

下边是最后多个例证 绘制 f(x) = sinx
, 这几个事例是最简便,做了好几改动是 坐标系增添了某个,具体看上边代码.

#define _USE_MATH_DEFINES //开启 math.h中默认的常量宏
#include <math.h>

//绘制三角函数
static void display(void)
{
    GLfloat fz = 10.f,p;

    glClear(GL_COLOR_BUFFER_BIT);

    //先绘制坐标系
    glBegin(GL_LINES);
    glVertex2f(-1.f,0.f);
    glVertex2f(1.f,0.f);
    glVertex2f(0.f,1.f);
    glVertex2f(0.f,-1.f);
    glEnd();

    //绘制三角函数
    glBegin(GL_LINE_STRIP);
    for (p = -fz;p < fz;p += 0.01f)
        glVertex2f(p/fz,sinf(p)/fz);
    glEnd();

    glFlush();
}

到此地关于 opengl 基础学习的 第一节 基本竣工了.上边例子很简单,但需求 自个儿敲过才能了解有个别. 那里再说一些题外话.有没有读者对 下面 使用static 感到好奇.

这是为了在三个品类中 添加两个 main 文件
,都用display 命名函数使用的技巧.因为 static 修饰的函数只在脚下文件内有效,就不会并发 同名函数编译不经过的难题.

有关static 和 extern 关键字 依然有为数不少文化的. 朋友们方可友善 科普一下.

 

说到底说一点,当初写博文从前,是实际上不(ˇˍˇ)
想~看水文.前边本人写了,才通晓,好难.本人也成功的进入了 水笔行业. 对每二个写博文的同行都表示 敬意.

做过,写过,思考过,才领会 有个别事 贵在坚韧不拔,难在 不想 坑人.

(有标题请随时拍砖,立刻改)

 

相关文章

No Comments, Be The First!
近期评论
    分类目录
    功能
    网站地图xml地图