2015年5月5日星期二

利用cygwin创建windows下的crontab定时任务 - Li-Cheng

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
利用cygwin创建windows下的crontab定时任务 - Li-Cheng  阅读原文»

要求

    • 必备知识

      熟悉基本编程环境搭建。

    • 运行环境

      windows 7(64位);
      Cygwin-1.7.35

    • 下载地址

      环境下载

2015-04-05_154024

什么是Cygwin

Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购)。它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对Cygwin产生了兴趣。

下载和安装

安装文件我一下上传到百度云去了,请自行下载!

PS:安装的时候默认是不会安装 cygrunsrv 和 cron 这2个程序的,所以大家要在Admin项里把这2个程序安装上。

最近一直有总一种要把整个Linux平台移植到Windows上来的感觉。别等我也任性了,我一定会去阿里云承包整片鱼塘,如下图(^_^):

_r2_c2

启动cygwin后能看到如下界面则成功

2015-04-05_201030

设置编码,我就不再配文字了,仔细看图,哈哈~~:

2015-04-05_212547

安装cygrunsrv及cron程序

  1. 在Cygwin下安装cygrunsrv及cron程序
  2. 将cron安装为windows服务。
    cygrunsrv -I cron -p /usr/sbin/cron -a -n
    网上有些文章中命令格式为: cygrunsrv -I cron -p /usr/sbin/cron -a -d,可能是因为cron版本不同。
    cygrunsrv参数说明:
    • -I: 安装服务
    • -R:删除服务
    • -S:启动服务
    • -E:停止服务
    • -Q:查询服务
    • -L:显示所有服务
    安装服务的参数:
    • -p:指定服务程序路径
    • -a:指定服务程序命令参数
    • -e:指定服务程序的环境变量
    • -d:服务的显示名称
  3. 启动cron服务
    cygrunsrv -S cron

除以上方法外,也可以使用/usr/bin/cron-config命令安装cron的windows服务

安装失败解决办法

你肯定安装失败了,对不对,对不对!是的,你安装失败了,但是我也不知道你为什么就安装失败了呢?也别来问我你为什么安装失败? 因为我也不可能知道你怎么就安装失败了! 还有一种可能就是,其实已经安装成功了,但是你误以为安装失败了!好吧,反正你就是安装失败了!下边提供了一些参考地址,总有一款适合你!(^_^)

如以上文章或链接对你有帮助的话,别忘了在文章结尾处轻轻点击一下 “还不错”按钮或到页面右下角点击 “赞一个” 按钮哦。你也可以点击页面右边“分享”悬浮按钮哦,让更多的人阅读这篇文章。

作者:Li-Cheng
由于本人水平有限,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论哦。你也可以关注我,一起学习哦!

(^_^)如果您觉得此文对您有帮助的话,打个赏喝个咖啡吧,么么哒(^_^)


本文链接:利用cygwin创建windows下的crontab定时任务,转载请注明。

《3D Math Primer for Graphics and Game Development》读书笔记1 - BIT祝威  阅读原文»

《3D Math Primer for Graphics and Game Development》读书笔记1

本文是《3D Math Primer for Graphics and Game Development》第一版的读书笔记。第二版貌似还没有中文版。

本书网站gamemath.com。中文版居然给了翻译公司的网址,而且里面还什么有用的都没有,�。

第2章 笛卡尔坐标系统

左手坐标系的记忆方法

伸出左手,手指依次是(1大拇指、(2食指、(3中指;坐标轴按字母表依次是(1X轴、(2Y轴、(3Z轴。他们分别对应起来,用左手摆成下图的样子(不错的pose啊),就是左手坐标系。

右手坐标系的记忆方法

同上,用右手就行了。

约定俗成和习惯

传统的计算机图形学使用左手坐标系,线性代数则倾向于右手坐标系。

两种坐标系没有优劣之分,只是使用习惯不同。

本书使用左手坐标系。

第3章 多坐标系

摄像机坐标系

本书约定的摄像机坐标系,摄像机在原点,X轴向右,Z轴向前,Y轴向上,如下图所示。

许多图形学书中习惯使用右手系,Z轴向外,即从屏幕指向读者。

坐标系变换

坐标系变换的意思:知道某一点P在坐标系A中的坐标,如何获取P在另一坐标系B中的坐标?

只需在坐标系A中定位坐标系B(描述B的原点和轴在A中的值)。后文会详述。

包围盒

向量轴对齐包围盒是axially aligned bounding box(AABB)的翻译。我就是觉得包围盒这个翻译很不错。

第4章 向量

相对位置

"50英里每小时的速度向北"能用向量表示。

向量能描述的是相对位置。相对位置的想法是很直接的:某个物体的位置,能通过描述它与已知点之间的相对关系来指明。

由此引出一个问题,这些"已知"点在哪儿?什么是"绝对"位置?令人吃惊的是不存在这样的东西。因为在描述一个点的位置时,总要描述它和其它一些点的关系。这就没完没了了。

既然"已知"点不存在,那么如何通过所谓的"已知"点来描述位置呢?我的思路是:假设存在一个已知点的位置。假设已经找到了一个已知点,这样就不必无限地去追溯"已知"点了。

相对论的一个重要观点就是不存在绝对参考系。

第5章 向量运算

向量和点的关系

向量[x, y]描述了原点到点(x, y)的位移量。

向量和点在概念上不同,而在数学上等价

等价是什么意思?等价就是两者存在一一对应的关系。一一对应是什么意思?就是即使你和我毫不相干,但是你有一个什么东西,我就有一个相应的什么东西;反过来也一样。比如你在照镜子,你看到镜子里的人脸上粘个米粒,就知道自己什么情况了。

向量投影

给定两个向量vn,可以把v分成两部分:v||v。它们分别平行和垂直于n, 并满足v = v|| + v。我们把平行分量v||称作vn上的投影。

投影的计算公式:

垂直分量的公式:

后文会有很多地方用到这两个公式。总之你知道有这两个公式存在就行了,需要的时候拿来用。毕竟不需要做数学家。

第6章 3D向量类

类接口

好的类设计首先要回答下列问题:"这个类将提供什么操作?"、"在哪些数据上执行这些操作?"

从这些代码和设计思路中就可以感受到作者的认真态度和深厚功底。

设计决策

如果世界不超过1英里,那么32位的float类型就足够,因为24位尾数能提供1/250英寸的精度。

如果世界超过200英里(321.8688千米),比如整个江苏省,那么32位float就不够了。

不存在Point3类

有了Vector3类,就不需要Point3类。避免重复代码以及满世界的向量与点的转换。

关于优化

过早的优化是一切罪恶的根源。优化那些非瓶颈的代码,使代码复杂化,却没有得到相应的回报。

在过去,定点数是一种优化技术。当今的处理器已经可以快速处理浮点数,这个技术就不需要了。

不要为了2%的优化付出100%的代码复杂性。

简单点说,就是别优化,我的技术水平没那么高。

第7章 矩阵

矩阵用来描述两个坐标系间的关系,通过定义一种运算来将一个坐标系中的向量/点转换到另一个坐标系中。换句话说,就是已知一个向量/点在坐标系A中的坐标,又知坐标系A和坐标系B的关系,求其在坐标系B中的坐标。

向量是标量的数组,矩阵是向量的数组。

矩阵的下标从1开始。

矩阵乘法

记r×n矩阵A与n×c矩阵B的乘积为CC的任意元素Cij如下:

矩阵乘法设计成这样,是因为有实际意义,数学上也有研究价值。或者说,正是因为它反映了现实世界的某些东西,才会有数学意义。

本书给了一种非常好的记忆方法:

我扩展了一下,可以将A的各个列拆开,同时将B的各个行拆开:

变成下图所示的样子:

可以看到,矩阵的乘法运算,可以把A的各列拆开,B的各行拆开,分别运算,最后相加。拆分时,只要A的列和B的行的拆分方式相同即可。

还有另一种拆法:把A的各行拆开,B的各列拆开,分别运算,最后拼起来。

而且,还可以同时进行这两种拆分。这时,你可以看做先进行第一种拆分,然后进行第二种拆分,这样(对我来说)比较容易理解。这样就能理解矩阵分块计算的原理。

约定和习惯

本书默认使用行向量进行与矩阵的运算。

DirectX使用的是行向量。

OpenGL使用的是列向量。

线性变换

线性变换保留了模型中原有的直线和平行线,原点也保持不动。长度、角度、体积可能会改变。从非技术意义上说,线性变换可能"拉伸"坐标系,但不会"弯曲"或"卷折"坐标系。

旋转、缩放、投影、镜像是线性变换。

仿射(线性变换后平移)不是线性变换。

方阵能描述线性变换。

矩阵运算和3D变换

设有一组基向量p0=(1, 0, 0),q0=(0, 1, 0),r0=(0, 0, 1),此时向量v=(x, y, z)就是vp0=(1, 0, 0),q0=(0, 1, 0),r0=(0, 0, 1)这个坐标系里的坐标,即有v = xp0 + yq0 + zr0

pqr为任意一组基向量。例如p=(1, 0, 0),q=(0, 1, 0),r=(0, 0, 1)(互相垂直);或p=(0.8, 0.6, 0),q=(-0.6, 0.8, 0),r=(0, 0, 1) (互相垂直);或p=(1/√5)(2,-1,0)q= (1/√45)(2,4,5)r= (1/3)(1,2,-2) (互相垂直)或p=(1, 1, 1-√2 ),q=(1-√2, 1, 1),r=(1, 1-√2, 1)(并非互相垂直)……

然后,我们用pq阅读更多内容

没有评论:

发表评论