Friday, June 7, 2013

[转]IOS开发常用数学函数

      1、 三角函数 
  double sin (double);正弦 
  double cos (double);余弦 
  double tan (double);正切 
  2 、反三角函数 
  double asin (double); 结果介于[-PI/2, PI/2] 
  double acos (double); 结果介于[0, PI] 
  double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2] 
  double atan2 (double, double); 反正切(整圆值), 结果介于[-PI, PI] 
  3 、双曲三角函数 
  double sinh (double); 
  double cosh (double); 
  double tanh (double); 
  4 、指数与对数 
  double exp (double);求取自然数e的幂 
  double sqrt (double);开平方 
  double log (double); 以e为底的对数 
  double log10 (double);以10为底的对数 
  double pow(double x, double y);计算以x为底数的y次幂 
  float powf(float x, float y); 功能与pow一致,只是输入与输出皆为浮点数 
  5 、取整 
  double ceil (double); 取上整 
  double floor (double); 取下整 
  6 、绝对值 
  double fabs (double);求绝对值 
  double cabs(struct complex znum) ;求复数的绝对值 
  7 、标准化浮点数 
  double frexp (double f, int *p); 标准化浮点数, f = x * 2^p, 已知f求x, p ( x介于[0.5, 1] ) 
  double ldexp (double x, int p); 与frexp相反, 已知x, p求f 
  8 、取整与取余 
  double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分 
  double fmod (double, double); 返回两参数相除的余数 
  9 、其他 
  double hypot(double x, double y);已知直角三角形两个直角边长度,求斜边长度 
  double ldexp(double x, int exponent);计算x*(2的exponent次幂) 
  double poly(double x, int degree, double coeffs [] );计算多项式 
  nt matherr(struct exception *e);数学错误计算处理程序

http://blog.csdn.net/zyc851224/article/details/7843859

Saturday, June 1, 2013

[转]弧度和角度的定义和转换


DEGREES函数的功能是将用弧度表示的参数转换为角度,RADIANS函数的功能是将用角度表示的参数转换为弧度。这两个函数的表达式为:
  DEGREES(angle)
  RADIANS(angle)
  其中DEGREES函数的参数angle表示待转换的弧度,RADIANS函数的参数angle表示需要转换成弧度的角度。
  示例如图所示
  B2中输入公式“=DEGREES(PI()/4)”pi/4弧度对应的角度。
  B3中输入公式“=DEGREES(-PI()/3)”-pi/3弧度对应的角度。
  B4中输入公式“=RADIANS(120)”120度对应的弧度值。
  B5中输入公式“=RADIANS(45)”45度对应的弧度值。

一、角的两种单位
弧度是度量角大小的两种不同的单位。就像市尺是度量长度大小的两种不同的单位一样。
  
flash里规定:在旋转角度(rotation)里的角,以为单位;而在三角函数里的角要以弧度为单位。这个规定是我们首先要记住的!!!例如:rotation2--是旋转“2sinπ/2)--是大小为“π/2弧度的角的正弦。

    
二、弧度的定义
    
所谓弧度的定义就是说,1弧度的角大小是怎样规定的?
    
我们知道的定义是,两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆周长的360分之一时,两条射线的夹角的大小为1度。(如图1
  
    
那么,弧度又是怎样定义的呢? 弧度的定义是:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角大小为1弧度。(如图2
      
比较一下,度和弧度的这两个定义非常相似。它们的区别,仅在于角所对的弧长大小不同。度的是等于圆周长的360分之一,而弧度的是等于半径。
      
简单的说,弧度的定义是,当角所对的弧长等于半径时,角的大小为1弧度。


此主题相关图片如下:




      角所对的弧长是半径的几倍,那么角的大小就是几弧度。
它们的关系可用下式表示和计算:
    
角(弧度)=弧长/半径
圆的周长是半径的倍,所以一个周角(360度)是弧度。
半圆的长度是半径的 π倍,所以一个平角(180度)是 π弧度。

   
三、度跟弧度之间的换算
   
据上所述,一个平角是 π 弧度。
    180度=π弧度
由此可知:
     1
度=π/180 弧度 ( ≈0.017453弧度 )
因此,得到 把度化成弧度的公式:
    
弧度=度×π/180
例如:
      90°
90×π/180 π/2 弧度
      60°
60×π/180 π/3 弧度
      45°
45×π/180 π/4 弧度
      30°
30×π/180 π/6 弧度
      120°
120×π/180 2π/3 弧度

反过来,弧度化成度怎么算?
因为    π弧度=180°
所以   1弧度=180°/π ≈57.3°
因此,可得到 把弧度化成度的公式:
     
度=弧度×180°/π
例如:
      4π/3
弧度=4π/3 ×180°/π
    
240°

也许有些朋友会说,究竟是乘以“π/180 ”,还是“180°/π”很容易搞错。其实你只要记住:ππ弧度,180180度。我要化成什么单位,就要把有这个单位的放在分子上。也就是说我要化成弧度,就要把π弧度放在分子上--乘以π/180 。另外,1度比1弧度要小得多,大约只有0.017453弧度(π/180≈0.017453)。所以把度化成弧度后,数字肯定要变小,那么化弧度时一定是乘以π/180 了。能够这样想一想,就不会搞错了。

AS代码里把“π”写成“PI”。又因为“π”“sin”都是数学函数,按规定要在前面加上“Math.”Math是英语中数学”Mathematics的缩写),加上后写成“Math.PI”“Math.sin”
所以    sin30°就得写成 Math.sin30*Math.PI/180)。其中小括弧内的部分是把30°化为弧度,即30×π/180

如果把这些都弄明白了,你看到弧度,不会再糊涂了吧

转自http://wenku.baidu.com/view/7f71b5d7195f312b3169a56b.html

Friday, May 31, 2013

[转]自己动手把移动硬盘做成USB-HDD启动盘的几个方法


1. 对移动硬盘上重要数据自己设法做好备份以防不测。
2. 用bootice写grub4dos引导到移动硬盘主引导记录(mbr)。盘上其它文件不动。
3. 下载官方提供的grub4dos压缩包,将其中grldr、menu.lst两个文件加入移动硬盘根目录。
 完毕。
如果顺利的话启动会出现菜单。
若要启动PE,只需把pe的iso镜像改名为0PE.ISO放在0PE目录即可通过对应菜单项启动之。
 OPE可以下载P大的最新版,地址:http://bbs.wuyou.com/forum.php?mod=viewthread&tid=270705
>>>>>>>>>>>>>>>>>

把P大的0PE的GRLDR和0PE丢移动硬盘,写个主引导OK

>>>>>>>>>>>>>>>>

方法不止一种的,我的做法是:
1、用WINPM90.EXE将160G移动硬盘分出一个5G的主分区C盘,原来的全部数据就统一移动到逻辑D盘中啦。
2、用BOOTICE.EXE将主分区引导记录做成“Ultraiso usb-hdd+”、分区引导记录做成“NTLDR引导程序”,将USB-XP系统拷贝到主分区根目录下,重启进入USB-XP系统,设置好后在USB-XP系统界面下,将一个MINIPE解压后、运行安装PE.EXE,则将此PE装入了主分区。
3、重启后即出现2个菜单:一是进入USB-XP系统,二是进入"SKY123.ORG PE",大功告成。
按此操作,我的160G移动硬盘就成为“USB-XP、WINPE(WIN2K3)这双启系统和大的BAK储存盘“。
注:由于上传受限,文中所讲到的WINPM90.exe、BOOTICE.EXE和40M多的PE请“百度”,网上N多!!

>>>>>>>>>>>>>>>>>>>>

我用UltraISO,先选择菜单“启动光盘/写入硬盘映像”,在对话框中选“便携启动/写入新的驱动器引导记录/windows 9x”。再复制DOS引导文件command.com、io.sys、MSDOS.SYS和grub.exe、menu.lst、AUTOEXEC.BAT文件到移动硬盘根目录就可以了,使用grub引导。

>>>>>>>>>>>>>>>>>>>
滑大
几年前就解决的问题,现在还在讨论。
最初发现UltraISO的U+方法只要点便捷启动,ISO映像写入U盘即可保留原有文件。后来因为想把手中的Mp3Player做成启动盘,首先拿来试着启动,显示没找到NTLDR,想到:原来就这么简单。于是把NTLDR和PE需要的文件拷入,问题就解决了。无需量产,无需格式化,不但能用MP3Player在电脑上启动PE,而且原有文件,原有所有功能统统无任何影响。
从此以后再在U盘上改造PE就是这办法,只要把MBR做成NTLDR启动(方法很多,现在就用UltraISO中的U+办法,其中的便捷启动下面有XP/NT启动选项),其他东西往上搬就是了。
我不需要菜单,但也想到:真有必要的时候改成grldr启动不就行了!

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

把主引导写HDD+,分区引导写grldr 这个跟P大说的单独主引导写grldr有什么区别?是前者适合U盘和移动盘,后者适合移动盘吗?
没什么大的区别,反正最终都用了grub4dos。
要说区别,就是写入usb-hdd+,是对MBR写入了一个扇区的引导;usb设备做为usbhdd硬盘方式启动,然后再引导PBR中的grldr或者syslinux/ms-dos/ntldr/bootmgr等各式各样的启动引导程序。
后者就是简单的在MBR中写入grldr,那么一上来就是进入grub4dos的引导程序并最终来到grub环境下,与PBR没什么关系了。
如果主板不支持usbhdd的话(当然现在几乎没有了),那么第二种方法要好一些。
可以用bootice先对MBR写入usbhdd+,再在PBR中写入grub外的其它引导方式;然后再对MBR写入GRUB引导,勾选“优先从原来的MBR启动”,这样可以达到grub及另外一种启动方式双启动的效果。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

我一般这样做:先用bootice写入grldr引导,再找一个能用grldr引导的PE,把所有文件拷到引导分区,然后隐藏引导分区。这样安全性较高,用起来也比较方便。
当然,方法很多,也可用fbinstool写入。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
转自http://blog.sina.com.cn/s/blog_4ad042e50102e6s2.html

硬盘安装Ubuntu10.04


鉴于网上的资料很多也很乱,每次重装系统都要找上半天的资料,所以,今天就把安装过程给整理一下。一来方便自己以后查阅,二来也可以为刚刚接触 Linux ( Ubuntu )的人指引一下道路,所以就有了这篇文章。 

一、 Ubuntu 系统的两个版本: Desktop , Alternate 

Desktop 是 Live CD 的名字,也就是刻录在光盘上运行的 Linux ,是一套已经装好的系统,把它烧录到光盘上,放进光驱就可以直接运行这套完整的 linux 。当然你也可以在运行之后把它“安装”到硬盘上,而这样的安装更像是一种拷贝或者还原,类似 ghost 。 

Alternate 才是真正意义上正统的安装版本,它是由许多 deb 包组成。可以详细的定制安装内容。 

这两个版本还有一些速度上的区别: 

因为类似系统还原, desktop 的安装速度较快,而 alternate 正式的安装相比之下会慢一些。 

而运行的时候恰好相反: 

Desktop 因为是既成的,可能会缺少对应软件环境的适应性,所以和灵活指定及安装的 alternate 相比会慢一些。 

Desktop CD 安装前可以看到基本界面和试用 (live CD 功能 ) , Alternate 面向安装个性化需求更大更专业一点的用户。 

二、两种系统安装时的不同 

1 、两者安装时用的虚拟内核文件 vmlinuz 和压缩文件系统 initrd.gz 文件不同: Desktop 版本的文件可以直接冲 ISO 中的 casper 文件夹中解压; Alternate 版本的文件需要从网上下载,注意:直接从 ISO 中解压出来的内核文件和文件系统文件不可用(安装时会提示找不到光盘还是硬盘),下载地址是: 

http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-i386/current/images/hd-media/

2 、两者用的压缩文件系统 initrd.gz 文件不同:从 Desktop 的 ISO 中解压出来的叫做 initrd.lz ,而 Alternate 从网上下载下来的叫做 initrd.gz ,即后缀名不一致。 

3 、安装 Desktop 版引导进入 LiveCD 后,在安装前要执行: sudo umount -l /isodevice ,否则会在分区时找不到分区。 

三、安装 Grub4Dos 来引导进入系统 

1 、 从中提取 grldr , grub.exe 和 menu.lst 三个文件,把它们和 initrd.gz(Alternate) 或者 initrd.lz(Desktop) , vmlinuz , ubuntu-10.04-alternate-i386.iso 或者 ubuntu-10.04-desktop-i386.iso 一起放到 C 盘根目录下。 

2 、编辑 menu.lst ,删除文件里的所有内容,修改为以下内容: 

title Install Ubuntu 10.04 

root (hd0,0) 

kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ ubuntu-10.04-alternate-i386.iso ro quiet splash locale=zh_CN.UTF-8 

initrd (hd0,0)/initrd.gz 

其中, filename=/ 后面是你 ISO 的文件名,记得最后一行 initrd.gz 或 initrd.lz 要对应好自己要安装的版本。 

3 、修改 BOOT.INI 

1. 右击 我的电脑 -> 属性 -> 高级 -> 启动和故障恢复 -> 设置 -> 编辑。在文件的最后面加上一行: c:\grldr="Install Ubuntu" ,然后再设置一个时间。 

四、重新启动电脑 

重启,选择 Install Ubuntu ,再选择 Install Ubuntu 10.04 ,然后就进入了 Ubuntu 的安装界面。 

五、安装 Ubuntu 

1 、如果安装 Desktop 版本, 3. 进入 desktop 界面之后先不要急着点击 desktop 上面的安装。通过左上角 Applications -> Accessories -> Terminal 打开终端。输入: sudo umount -l /isodevice ,执行完命令,就可以开始安装了。 

2 、如果是 Alternate 就不用这一步了。 

3 、接下来就是一步一步的安装了,这里就不再多说,主要强调安装中应该特别注意的几个问题: 

六、安装要特别注意的几个问题 

1 、分区:一般三个就可以了: swap , / , /home 。分区一定要小心,看好哪个是自己本机的硬盘,哪个是你的移动硬盘。一般情况下本机硬盘是 sda ,移动硬盘是 sdb 。想安装在移动硬盘上就要在 sdb 上面进行分区。 

2 、安装 grub 引导:如果是在自己本机硬盘上安装,可以不用管这一步,如果是要安装在移动硬盘上,这一步就非常重要了,就是一定要确保 grub 引导是安装在你的移动硬盘上。具体 Desktop 版本和 Alternate 版本又有所不同。 

Desktop 版本配置到后面时,会有一个“高级”按钮,点击打开一个窗口,这个就是用来设置引导安装位置的,默认是安装在 sda 也就是本机硬盘上,如果想移动硬盘启动,就要修改安装在 sdb 上。这一点非常重要,切记切记!!! 

Alternate 版本是在系统安装基本结束时,会有文字界面提示,要把引导安装在哪个位置,移动硬盘可以直接输入: /dev/sdb 

七、安装结束 

安装结束,重新启动。如果引导安装到移动硬盘上,可先设置电脑 BIOS 中启动顺序为: USB 为第一启动,这样就可以进入新的系统了。 

八、配置自己的系统

Tuesday, May 28, 2013

隐藏请求Apache服务器Header中的Server信息


可以在apachehttpd.conf进行设置是否显示服务器信息给用户,主要是通过ServerTokens和ServerSignature两个属性进行控制。默认条件下会把apache版本系统模块都显示出来(HTTP返回头)
如果需要隐藏Server的信息,打开httpd.conf文件,在最上面添加以下配置:
ServerTokens ProductOnly
ServerSignature Off
ServerTokens和ServerSignature的可选值如下:
ServerSignature On|Off|Email(默认值是on)
ServerTokens Minimal|ProductOnly|OS|Full(默认值是Full)

以下是分别设置这些值的一些结果显示,以我电脑为例:
ServerTokens Prod[uctOnly]
    Server sends (e.g.): Server: Apache
ServerTokens Min[imal]
    Server sends (e.g.): Server: Apache/2.2.2
ServerTokens OS
    Server sends (e.g.): Server: Apache/2.2.2 (Unix)
ServerTokens Full (会显示上面所有的信息)
ServerSignature控制由系统生成的页面的页脚中如何显示信息。