Profil de 超曷其有极PhotosBlogListes Outils Aide

Blog


1 mars

LCPolyhedra 1.0

本来只是下一版LCG的一个模块,鉴于目前堕落的状况和不可扭转的颓势,只能先放上来了。
没想到做了那么长时间……现在完全没想法了

你可以到我的网盘的软件目录下或者直接到这里下载
这一版包括了

Platonic Solid
Kepler-Poinsot Solid
Archimedean Solid
Archimedean Dual(Catalan Solid)
Convex Deltahedron
Quasiregular Polyhedron
Pyramid
Prism
Anti-Prism
Prism Dual(Dipyramid)
Anti-prism Dual(Trapezohedron)
Cupola and Bi-cupola
Toroidal Polyhedron
Johnson Solid
Uniform Polyhedron
Uniform Polyhedron Dual
Stellation of the Octahedron
Stellation of the Dodecahedron
Stellation of the Icosahedron
Stellation of the Rhombic Triacontahedron
Miscellaneous

21个类别共464个模型,可以自由旋转了,完成了bmp,jpg,动画gif,avi的输出

帮助文档有二十几页,这里就不贴了.发几张图:
truncated cuboctahedron
5-tetrahedron
uniform

严重感谢上弦月和冰咖啡帮我做测试工作!


24 juillet

百度空间 VS msn space

看到使用msn space的人越来越多,这一点的确印证了它作为全球目前最大的博客服务商的事实.
不过说实在话,这个地位很大程度上是和与msn messenger的捆绑有关,一个朋友影响另一个朋友,使用圈子自然就一步步庞大起来了.msn space本身的功能并没什么太出众的地方,以前觉得相册看上去很赏心悦目,升了几次级感觉反而不如从前了……慢、卡、假死、无法响应、空间不可用等特点一直挥之不去(个人感觉,欢迎拍砖)

百度空间于7月13日放开注册,第一时间注册了一个试用看看.现在感觉百度空间在功能上确实没有明显比msn空间差的地方,而且支持自定义CSS(你可以看到我的测试效果).最关键的就是速度相当快,丝毫没有等待的感觉!百度的空间,数据的稳定性也是值得信赖的.和一般的博客提供商不同,百度是一家搜索主打的公司(帖吧、知道都用过吧?),虽然目前功能还不特别强大,但个人感觉百度空间还是有很大的发展空间.所以严重推荐.还有一点,由于上线没几天,很多的短地址仍没有被注册,你或许还可以注册到你喜欢的名字(还支持中文!)
 
ps:目前两方面同步更新.继续期待live space,不过如果速度没有改观的话,可能会放弃这里的更新……(唉,没有自己的网站。。。受困于人啊。。。)
 
你可以在这里看看我的测试效果


有关KSEG

  KSEG的windows版本作者用的是non-commercial Qt+STLPort 4.6+VC6。
既然我们要用(没办法...我这样的菜鸟只会用windows),当然最好和作者用的是一样的,可我一开始根本不知道作者用的是什么版本non-commercial qt,而且Readme_Windows里写
Building may not be easy--I had to make some modifications to the Qt header files before it compiled.
看的我一身冷汗。。。我怎么知道你改了什么头文件。。。只能硬着头皮上了,当时也没有仔细去看工程属性(菜鸟表现),以大无畏的精神试了n个版本,花掉两个下午和晚上……编译时间太漫长了……

  所以我现在很郁闷,别惹我……不过浪费了两天时间,总算是搞定了,其中经历了太多坎坷……或许还有和我一样的初学菜鸟,可以看看这篇文章。
 
  后来又看到Install文件里有
Be sure you have the necessary libraries correctly installed,namely Qt 3.x or later.
于是下了个3.3.2,发现头文件有点对头了,没有报那么多错了,但是还有几个有些问题,于是再度硬着头皮去搜错误的代码,然后找看上有些对的替换原来的头文件,终于全部通过编译(可惜是碰的...)看了看工程属性,原来需要qtmain.lib和qt-mt230nc.lib,于是猛搜一通,找到了QtWin230-NonCommercial.exe ,一安装,发现连编译都不用,居然可以直接拿来用了,一路next到底,最终搞定!!!
  当然,最后还要设置环境变量QTDIR=C:\qt(你的安装目录)
 
  STLPort 4.6的安装过程对我来说就相对比较简单了,到官网上下载,然后解压,我解压到C:\STLPort。将vcvars32.bat(我的在C:\Program Files\Microsoft Visual Studio\VC98\Bin,你可以找你的对应的目录,这个文件保存了vc的环境变量)复制到C:\STLPort\src(为了方便起见),命令提示到C:\STLPort\src,运行vcvars32,然后nmake -f vc6.mak clean all(如果你是VC.Net,则对应vc71.mak,当然如果你要编译KSEG-win就只能用VC6了...qt 2.3只支持vc6...)
  等待一段时间……然后编译完成
  最后设置环境变量STLPORTDIR=C:\STLPort
 
  接下来,在vc6(一定要打sp6)的选项include,library目录中添加C:\STLPort\include,C:\STLPort\stlport,并移至最前;设置project|settings|c\c++中的Use Run-Time Library选Multithreaded,然后Build(一堆警告,先不管那么多了) ,KSEG-win的编译终于成功啦!
 
  尽管如此,未来仍是一片崎岖...不过接下来大家可以共同合作了!
  兴奋...兴奋...睡觉...zzz...
 
菜鸟相关问题:
  • 如何设置环境变量呢?——控制面板|系统|高级|环境变量
  • 什么是qt?
  • 什么是nmake?
  • 什么是STLport?
17 juillet

LCGrapher 2.0 正式放出

我们一贯的牛皮口号是——有了LCG,谁……都可以成为艺术家……
严重感谢老王同学帮我做测试工作
你可以点这里下载最新版本,或者也可以到我的网盘的软件目录下去下载。
在这一版诞生的过程中我深刻的体会到三点:
  1. 我是个严重缺乏整体观念的人,由于上一版的整体规划太差,导致n天中几乎重写了所有代码,以便获得继续发展的方便。
  2. 我是个严重缺乏意志力的人,n天中玩了m天的网游,并乐此不疲
  3. 我是个严重……的人,这里就不便说了

以下为说明文件:


V1.5计划中的1,3,5,6已基本完成,2,4部分完成,7,8还未完成.

增加了球面坐标和柱面坐标作图类型.

增加了多对象的支持。选项分为了两部分——图形和场景,图形选项页上的选项对应单个图形,对每个图形对象是独立的。场景选项页上的选项则是全局性的。

增加了图形列表。所有位于一个场景内的图形储存于一个图形列表中,它们依次编号为[1],[2],[3]等等,你可以在图形列表窗口中观看综合的统计信息,新建,删除,或者编辑某一个图形.当然,你得在编辑另一个图形之前保存当前正在编辑的图形,保存当前图形可以点击"保存到[n]"按钮,点击绘制按钮也会自动保存当前图形的信息.图形列表窗口中,每行前的选框代表着此行所表示的图形是否可见。

增加了光照效果,你可以点击场景页,勾选"光照",来获得光照效果.点击"光照按钮可以修改光照参数——环境光、漫射光、镜面光、光源的位置和指向、聚光灯的剪裁角度、衰减指数和光斑大小。(由于目前对非定向曲面和隐式曲面的法线方向还没有想出太好的办法,这两者的效果不是十分满意。如果你有好<的想法的话,务必与我联系!)

增加了对线段的反锯齿选项。

增加了立体框和网格选项。你可以定制它们的大小、位置、数量和坐标标签。

将V1.0中的坐标系放置在场景左下角,你可以更清晰的观察到视图的变换。

(V2.0增强颜色参数)增加了根据参数(最多图形表达式中可以含有a~f六个参数参数着色表达式中可以含有g~l六个参数)的动画,每个参数可以有"双向","递增","递减","自由"不同的运动方式。对于前三种运动方式,速度值代表每秒钟参数的改变量;对于"自由"运动方式,速度值表示每多少秒参数进行随机变化一次(也就是说速度值越小,随机运动频率越高)。对于参数着色表达式,可以有"色调","灰度","RGB","HSB"四种方式,所有值对应的效果都以1为一个周期变化。对于f(u,v)型的图形,着色表达式除了可以关于(x,y,z),还可以关于(u,v)。

(V2.0增强动画功能)新增了动画控制台,在动画控制台中可以启动、停止动画,改变运动方向(只对双向运动的参数有效),也可以使用滑杆来手动地控制一个参数的值(很方便)。你也可以在场景页中的动画选项里,改变全部a~l十二个动画参数的值、范围、速度和运动方式。运动方式增加了"不参与",对"不参与"的参数,你可以单独手动控制它,而使其他参数自动运动。图形选项页中有参与动画选框,若不勾选,则此图形在动画启动后保持原状。

新增了曲面在x,y,z轴向上的投影。投影将绘制在立体框的六个面上。

新增了图形的透明度选项。

新增了正交投影方式。

美化了一下程序界面。

大幅度的改进了算法和数据结构,你可以明显地体会到速度的提高。当然,速度是随着样本点的增多和表达式的复杂而减慢的,建议样本点的个数最好不要超过10^6.(否则可能会考验电脑的硬件配置和你的耐心)

新增了一些快捷键。

新增了对f(x,y,z)=0隐式曲面的间断点判断。你可以勾选间断点选项,输入一个值,LCG将对值之大于这个值的相邻两个样本点予以剔出。可以解决类似z=1/x,z=tan(x)之类的图像问题。

(V2.0增强文件功能)由于功能与V1.5相差较大,V2.0不再支持V1.5格式的LCG模型。如果你需要打开V1.5格式文件,只能使用LCGrapher 1.5。V2.0文件采用INI形式储存,结构比较清晰(你甚至可以用记事本来写一个模型,再用LCG来观察结果),便于文件格式向后兼容。在点击打开文件按钮时,会有两种打开模式供你选择,一种直接打开文件,另一种则提取文件中的图形信息添加到当前场景中.

如果你是用安装程序来完整安装LCG V2.0的,则安装程序已经完成了.lcg的文件关联,你可以直接双击.lcg文件打开模型。安装目录下的sample文件夹放置了一些范例文件。

你的工作很轻松,在LCG的输入框里随意写上一些数学表达式(你可以在喝醉酒的时候干这些事),点几个按钮,然后让LCG程序来帮你画一幅图画,接下来剩下的就是在屏幕面前惊叹神奇,慢慢欣赏喽。

V2.0计划中
------------------------------------------------------------
1.增加一项在任意平面上的投影
2.基本图元及多面体库
3.更多坐标系的支持
4.轨迹跟踪
5.基本的离散数据点绘制
6.更好解决未定义及间断点问题(得仔细看看TExpress)
7.三维分形
8.自由视角
9.增强光照效果(尤其是隐式曲面)
10.空间向量场
11.自动旋转
12.双面着色


 (msn space实在太慢了……开始期待live space)


补充:刚才写完过后一直“空间不可用”,无法发布也无法保存草稿,郁闷了半天……测试了半天,原来“对于f(u,v)型的图形,着色表达式”这个逗号之后有一个Unit Separator控制符(看上去就是个空格),删掉就能发布,留着就“空间不可用”,实在是诡异,哪位大哥能告诉我为什么啊?在你空间上试试是不是也是这样?

19 juin

用GE去飞行旅游

前几天Google Earth出了v4 beta,更新了大量中小城市的卫星图.不用再争什么卫星看得到什么卫星看不到了……
当你抬头看蓝天的时候,说不定上帝之眼正在盯着你
所以说,一定要想:Don't be evil!!而且要做:Don't be evil!!
 
 
 白云下面我的家
 
一些截图放置在相册里(个人感觉相册不如升级前好
16 mai

Hello World!!

看到一篇有趣的文章大开眼界!!
 

High School/Jr.High(高中生)

 10 PRINT "HELLO WORLD"
 20 END
 

First year in College(大学新生)

 program Hello(input, output)
 begin
 writeln('Hello World')
 end.
 

Senior year in College(大学高年级生)

 (defun hello
 (print
 (cons 'Hello (list 'World))))
 

New professional(公司新职员)

 #include <stdio.h>
 
 void main(void)
 {
  char *message[] = {"Hello ", "World"};
  int i;
  for(i = 0; i < 2; ++i)
  printf("%s", message[i]);
  printf("\n");
 }
 

Seasoned professional(老练职员)

 #include <iostream.h>
 #include <string.h>
 class string
 {
  private:
   int size;
   char *ptr;
  public:
   string() : size(0), ptr(new char('\0')) {}
   string(const string &s) : size(s.size)
   {
     ptr = new char[size + 1];
     strcpy(ptr, s.ptr);
   }
   ~string()
   {
     delete [] ptr;
   }
   friend ostream &operator <<(ostream &, const string &);
   string &operator=(const char *);
 };
             
 ostream &operator<<(ostream &stream, const string &s)
 {
   return(stream << s.ptr);
 }
 string &string::operator=(const char *chrs)
 {
   if (this != &chrs)
   {
     delete [] ptr;
     size = strlen(chrs);
     ptr = new char[size + 1];
     strcpy(ptr, chrs);
   }
   return(*this);
 }
 int main()
 {
   string str;
   str = "Hello World";
   cout << str << endl;
   return(0);
 }
 

System Administrator(系统管理员)

 #include <stdio.h>
 #include <stdlib.h>
 main()
 {
  char *tmp;
  int i=0;
  /* on y va bourin */
  tmp=(char *)malloc(1024*sizeof(char));
  while (tmp[i]="Hello Wolrd"[i++]);
  /* Ooopps y'a une infusion ! */
  i=(int)tmp[8];
  tmp[8]=tmp[9];
  tmp[9]=(char)i;
  printf("%s\n",tmp);
 }

Apprentice Hacker(初级骇客)

 #!/usr/local/bin/perl
 $msg="Hello, world.\n";
 if ($#ARGV >= 0) {
     while(defined($arg=shift(@ARGV))) {
         $outfilename = $arg;
         open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
         print (FILE $msg);
         close(FILE) || die "Can't close $arg: $!\n";
     }
 } else {
     print ($msg);
 }
 1;

Experienced Hacker(有经验的骇客)

 #include <stdio.h>
 #include <string.h>
 #define S "Hello, World\n"
 main(){exit(printf(S) == strlen(S) ? 0 : 1);}
 

Seasoned Hacker(老练骇客)

 % cc -o a.out ~/src/misc/hw/hw.c
 % a.out
 Hello, world.
 

Guru Hacker(骇客领袖)

 % cat
 Hello, world.

New Manager (do you remember?)(新的软件经理)

 10 PRINT "HELLO WORLD"
 20 END
 

Middle Manager(中级经理)

 mail -s "Hello, world." bob@b12
 Bob, could you please write me a program that prints "Hello, world."?
 I need it by tomorrow.
 ^D
 

Senior Manager(高级经理)

 % zmail jim
 I need a "Hello, world." program by this afternoon.

Chief Executive(首席执行官)

 % letter
 letter: Command not found.
 % mail
 To: ^X ^F ^C
 % help mail
 help: Command not found.
 % damn!
 !: Event unrecognized
 % logout

Research Scientist(科学家)

        PROGRAM HELLO
 PRINT *, 'Hello World'
 END

Older research Scientist(老科学家)

 WRITE (6, 100)
    100 FORMAT (1H ,11HHELLO WORLD)
 CALL EXIT
 END
 
你看得出都是什么语言和环境吗?
 
链啊链:
 
22 avril

LCGrapher V1.5 发布了!

这一版改动比较大,增加了更丰富的效果和动画功能
可以到软件目录下下载最新版。
以下是说明文件:
 
V1.5
------------------------------------------------------------
你可以通过键盘上的A,W,S,D代替鼠标进行视图的旋转。
在平滑着色和单调着色基础上新增了渐变着色方式。你可以在渐变参数选项中
改变渐变着色的方式。
你可以勾选"雾化"项达到一种可观的立体效果。
增加了根据参数(最多表达式中可以含有a~f六个参数)的动画,每个参数可以有
"双向","递增","递减","自由"不同的运动方式。若你选择"自由"方式,则该参数
在范围内做随机运动,速度值越大,周期越大。
增加了模型文件的保存与打开功能,可以保存你所做的图形,视图旋转,着色参数
及动画参数。打开文件后,请按刷新键获得打开的模型文件。
略微改进了着色方式和作图算法,速度有所提高。
修正了上一版中的一些BUG。
 
计划中
------------------------------------------------------------
1.光照效果
2.解决若干间断点及未定义的问题
3.优化动画算法,加快速度
4.空间在任意平面上的投影
5.根据运动参数的着色方式
6.支持多对象
7.基于不等式的图形
8.三维分形
 
最后厚颜无耻一下,做个广告:有了LCG,谁。。。都可以成为艺术家……(比较牛皮,恰好符合广告的属性)。
要歇一段了,感觉比较堕落
 

看动画(压缩的效果不怎么好

7 avril

痛改前非

被傅教授点名批评“不务正业”,感到十分痛心,决心痛改前非,务一些正业。
昨天(准确地说是今天凌晨)花了几个小时把片头给完工了,150帧(很奇怪这个字是后鼻音)的动画渲了十多分钟,由于无压缩,做出来的avi居然有120M。然后后期处理了一下,加了一段音效,似乎还蛮配合画面的。为了保证画面质量,最后的成品还是有17M左右。不过鉴于目前光盘不可扭转的空洞无物的现状,估计17M还能起到撑起光盘容量的重要意义。要是实在没东西放了,还可以往里面塞一些诸如测RP之类的无聊程序,以实现将恶搞进行到底的历史使命。
6 avril

LCGrapher 1.0 发布啦!

经过半个月的奋斗(对于高手来说似乎长了些,不过像我这样的初学菜鸟半个月也
说得过去吧),我的第一个delphi+opengl程序LCGrapher 1.0终于完成啦!
这是一个3D作图程序,支持z=F(x,y),参数方程,F(x,y,z)=0作图(这个算法么……),并可自由操纵。
以下是说明文件:
 
和大多数3D软件一样,LCG采用红色表示x轴,绿色表示y轴,蓝色表示z轴。
你可以按住鼠标左键进行拖动,使图形旋转;
你可以按住鼠标右键进行拖动,使图形平移;
你可以按住鼠标中间(或滚轮)进行拖动,来放缩图形的大小;
可以在"旋转方式"中选择一种来确定当点住左键左右拖动时旋转是绕z轴还是绕y轴。
在作某些图形时可能会出现一些片段无法正确显示,这是由于一些曲面上的样本点恰巧处于临界的位置,此时可以尝试改变作图范围,例如将"X:-3 到 3"改为"X:-3.01 到 3"即可使图形完整显示。
步长表示计算机去样本点的间隔距离,步长越短,样本点越多,计算时间也就越长,得出的图形也就越精确。
由于某些原因(例如另一个窗口覆盖了LCG的作图区域),使图形无法完整显示,可以点击"刷新"按钮即可使图形重新显示。
本程序需要OpenGL指令集支持。
 
本程序可到网盘的软件目录下下载。
下一版想做的功能:
1)更丰富的色彩和光影效果
2)根据参数的动画
 
再说吧……