当前位置: 编程技术>其它
本页文章导读:
▪C/C++中的##符号 在阅读一些程序的时候,发现C/C++宏定义中,有两个##符号的语句。其意为:字符连接,即在通过##符号连接字符串。如:#define Q(TEXT) "a"##TEXT示例代码:1 2 #define Q(TEXT) "a"##TEX.........
▪稍微介绍下python库之Turtle Turtle乃龟的意思,最初属于logo语言的(没玩过)..不过后来也有别的语言支持.其一是SmallBasic,其二就是Python.一直不知道这个库竟然是Python内置的.它是基于Tk库的.用起来很简单.from turtle import *即可..........
▪linux高级编程day06 笔记(转) 摘要: 问题解答: 1.exit(状态码)返回状态码有什么意义? 返回值被系统得到.系统根据状态码进行日志记录. 返回值被调用者得到:system/wait..........
[1]C/C++中的##符号
在阅读一些程序的时候,发现C/C++宏定义中,有两个##符号的语句。其意为:字符连接,即在通过##符号连接字符串。
如:
#define Q(TEXT) "a"##TEXT
示例代码:
1
2 #define Q(TEXT) "a"##TEXT
3 #include <stdio.h>
4 int main()
5 {
6 printf(Q("bcdefg")) ; // 本条语句输出为:abcdefg
7 }
2 #define Q(TEXT) "a"##TEXT
3 #include <stdio.h>
4 int main()
5 {
6 printf(Q("bcdefg")) ; // 本条语句输出为:abcdefg
7 }
注:示例代码只在VC2008中测试
注2:GCC测试未通过
Fanze 2013-01-02 17:32 发表评论
[2]稍微介绍下python库之Turtle
Turtle乃龟的意思,最初属于logo语言的(没玩过)..不过后来也有别的语言支持.其一是SmallBasic,其二就是Python.一直不知道这个库竟然是Python内置的.它是基于Tk库的.
用起来很简单.
from turtle import *
即可.
简单画线.
其中reset()是将整个画布清空并讲乌龟(箭头)置于原点(画布的中心). goto(70,0) 是根据当前的状态(速度,颜色,是否画线 ... )运动到(70,0)点上.
turtle的坐标系跟我们学习的坐标系一样.很好学习.
下面我们来画个正方形.很简单.
就是前进(fd)一段距离,右转(right)90度,反复4次即可.
当然画任意的边形都可以.改变角度就好了,当然也可以顺便改下长度,如下
好了简单介绍到这里了,还有更多的功能可以查手册了.
或者更多的Demo看 http://code.google.com/p/python-turtle-demo/
下面来看一小例子,分形.当然经典的Mandelbrot看烂了,换点别的.叶子的构造.
方法很简单.乘法迭代.不过不是单一的迭代而是根据概率迭代.每次的结果都以坐标画在图片上.
代码来自于.http://www.mathworks.cn/moler/intro.pdf 不过原始代码是Matlab写的,我这里改成Python的.其中用到了Numpy库,主要用于矩阵乘法,其实自己写个一不困难的.
调试时发现A*x在Numpy中有别的含义,要使用dot(A,x).代码如下:
from numpy import *
from random import random
import turtle
turtle.reset()
x = array([[.5],[.5]])
p = [0.85,0.92,0.99,1.00]
A1 = array([[.85, 0.04],
[-0.04,.85]])
b1 = array([[0],[1.6]])
A2 = array([[0.20,-0.26],
[0.23,0.22]])
b2 = array([[0],[1.6]])
A3 = array([[-0.15,0.28],
[0.26,0.24]])
b3 = array([[0],[0.44]])
A4 = array([[0,0],
[0,0.16]])
turtle.color("blue")
cnt = 1
while True:
cnt += 1
if cnt == 2000:
break
r = random()
if r < p[0]:
x = dot(A1 , x) + b1
elif r < p[1]:
x = dot(A2 , x) + b2
elif r < p[2]:
x = dot(A3 , x) + b3
else:
x = dot(A4 , x)
#print x[1]
turtle.up()
turtle.goto(x[0][0] * 50,x[1][0] * 40 - 240)
turtle.down()
turtle.dot()
from random import random
import turtle
turtle.reset()
x = array([[.5],[.5]])
p = [0.85,0.92,0.99,1.00]
A1 = array([[.85, 0.04],
[-0.04,.85]])
b1 = array([[0],[1.6]])
A2 = array([[0.20,-0.26],
[0.23,0.22]])
b2 = array([[0],[1.6]])
A3 = array([[-0.15,0.28],
[0.26,0.24]])
b3 = array([[0],[0.44]])
A4 = array([[0,0],
[0,0.16]])
turtle.color("blue")
cnt = 1
while True:
cnt += 1
if cnt == 2000:
break
r = random()
if r < p[0]:
x = dot(A1 , x) + b1
elif r < p[1]:
x = dot(A2 , x) + b2
elif r < p[2]:
x = dot(A3 , x) + b3
else:
x = dot(A4 , x)
#print x[1]
turtle.up()
turtle.goto(x[0][0] * 50,x[1][0] * 40 - 240)
turtle.down()
turtle.dot()
注意下其中导入.numpy.dot 和 turtle.dot 是有冲突的.
结果如下.
牙,好难看..
Matrix67句句也学过关于这个的文章 http://www.matrix67.com/blog/archives/500
好了睡觉..
本文链接
[3]linux高级编程day06 笔记(转)
摘要: 问题解答: 1.exit(状态码)返回状态码有什么意义? 返回值被系统得到.系统根据状态码进行日志记录. 返回值被调用者得到:system/wait.程序会根据返回状态码进行对应处理。 exit(状态码)=main函数中的return 状态码; &nbs... 阅读全文
鑫龙 2013-01-04 10:42 发表评论
最新技术文章: