1.pythonä»ä¹ä¸è¥¿ï¼
2.ParaView 源码编译教程
3.python是什么意思-含义详解
4.vtkå¨Java2ä¸ç使ç¨
pythonä»ä¹ä¸è¥¿ï¼
Pythonæ¯ä»ä¹ï¼
Pythonç±è·å °æ°å¦å计ç®æºç§å¦ç 究å¦ä¼çGuidovanRossumäº
年代å设计ï¼ä½ä¸ºä¸é¨å«åABCè¯è¨çæ¿ä»£åãPythonæä¾äºé«æçé«çº§æ°æ®ç»æï¼è¿è½ç®åææå°é¢å对象ç¼ç¨ãPythonè¯æ³åå¨æç±»åï¼ä»¥å解éåè¯è¨çæ¬è´¨ï¼ä½¿å®æ为å¤æ°å¹³å°ä¸åèæ¬åå¿«éå¼ååºç¨çç¼ç¨è¯è¨ï¼éççæ¬çä¸ææ´æ°åè¯è¨æ°åè½çæ·»å ï¼éæ¸è¢«ç¨äºç¬ç«çã大å项ç®çå¼åã
Python解éå¨æäºæ©å±ï¼å¯ä»¥ä½¿ç¨CæC++(æè å ¶ä»å¯ä»¥éè¿Cè°ç¨çè¯è¨)æ©å±æ°çåè½åæ°æ®ç±»åãPython
ä¹å¯ç¨äºå¯å®å¶å软件ä¸çæ©å±ç¨åºè¯è¨ãPython丰å¯çæ ååºï¼æä¾äºéç¨äºå个主è¦ç³»ç»å¹³å°çæºç ææºå¨ç ã
pythonæ¯ä»ä¹ï¼
Pythonæ¯ä¸ç§é¢å对象ç解éå计ç®æºç¨åºè®¾è®¡è¯è¨ï¼å ·æ丰å¯å强大çåºãå®å¸¸è¢«æµç§°ä¸ºè¶æ°´è¯è¨ï¼è½å¤æç¨å ¶ä»è¯è¨å¶ä½çåç§æ¨¡åï¼å°¤å ¶æ¯C/C++ï¼å¾è½»æ¾å°èç»å¨ä¸èµ·ã
Pythonæ¯ä¸ç§é¢å对象ç解éå计ç®æºç¨åºè®¾è®¡è¯è¨ï¼ç±è·å °äººGuidovanRossumäºå¹´åæï¼ç¬¬ä¸ä¸ªå ¬å¼åè¡çåè¡äºå¹´ã
Pythonä½ä¸ºå½ä¸æçé¨çç¼ç¨è¯è¨ï¼å¨å¹´ä¸çèæ¬è¯è¨æè¡æ¦ä¸ä½åæ¦é¦ï¼å·²ç»æ为äºå¤ä¸ªé¢åçé¦éè¯è¨ã
åå±åç¨
èªä»ä¸çºªå¹´ä»£åPythonè¯è¨è¯çè³ä»ï¼å®å·²è¢«éæ¸å¹¿æ³åºç¨äºç³»ç»ç®¡çä»»å¡çå¤çåWebç¼ç¨ãPythonçåå§äººä¸ºGuidovanRossumãå¹´å£è¯èæé´ï¼å¨é¿å§æ¯ç¹ä¸¹ï¼Guido为äºæåå£è¯èçæ 趣ï¼å³å¿å¼åä¸ä¸ªæ°çèæ¬è§£éç¨åºï¼ä½ä¸ºABCè¯è¨çä¸ç§ç»§æ¿ãä¹æ以éä¸Pythonï¼å¤§èèçææï¼ä½ä¸ºè¯¥ç¼ç¨è¯è¨çååï¼æ¯åèªè±å½ä¸çºªå¹´ä»£é¦æççµè§åå§ãèæ.派森干çé£è¡é©¬æå¢ãï¼MontyPython'sFlyingCircusï¼ãABCæ¯ç±Guidoåå 设计çä¸ç§æå¦è¯è¨ãå°±Guidoæ¬äººçæ¥ï¼ABCè¿ç§è¯è¨é常ä¼ç¾å强大ï¼æ¯ä¸é¨ä¸ºéä¸ä¸ç¨åºå设计çãä½æ¯ABCè¯è¨å¹¶æ²¡ææåï¼ç©¶å ¶åå ï¼Guido认为æ¯å ¶éå¼æ¾é æçãGuidoå³å¿å¨Pythonä¸é¿å è¿ä¸é误ãåæ¶ï¼ä»è¿æ³å®ç°å¨ABCä¸éªç°è¿ä½æªæ¾å®ç°çä¸è¥¿ãå°±è¿æ ·ï¼Pythonå¨Guidoæä¸è¯çäºãå¯ä»¥è¯´ï¼Pythonæ¯ä»ABCåå±èµ·æ¥ï¼ä¸»è¦åå°äºModula-3ï¼å¦ä¸ç§ç¸å½ä¼ç¾ä¸å¼ºå¤§çè¯è¨ï¼ä¸ºå°åå¢ä½æ设计çï¼çå½±åã并ä¸ç»åäºUnixshellåCçä¹ æ¯ãPythonå·²ç»æ为æå欢è¿çç¨åºè®¾è®¡è¯è¨ä¹ä¸ãèªä»å¹´ä»¥åï¼pythonç使ç¨çå线æ§å¢é¿ãå¹´1æï¼å®è¢«TIOBEç¼ç¨è¯è¨æè¡æ¦è¯ä¸ºå¹´åº¦è¯è¨.ç±äºPythonè¯è¨çç®æ´æ§ãæ读æ§ä»¥åå¯æ©å±æ§ï¼å¨å½å¤ç¨Pythonåç§å¦è®¡ç®çç 究æºææ¥çå¢å¤ï¼ä¸äºç¥å大å¦å·²ç»éç¨Pythonæ¥ææç¨åºè®¾è®¡è¯¾ç¨ãä¾å¦å¡èåºæ¢ é大å¦çç¼ç¨åºç¡ã麻ççå·¥å¦é¢ç计ç®æºç§å¦åç¼ç¨å¯¼è®ºå°±ä½¿ç¨Pythonè¯è¨è®²æãä¼å¤å¼æºçç§å¦è®¡ç®è½¯ä»¶å é½æä¾äºPythonçè°ç¨æ¥å£ï¼ä¾å¦èåç计ç®æºè§è§åºOpenCVãä¸ç»´å¯è§ååºVTKãå»å¦å¾åå¤çåºITKãèPythonä¸ç¨çç§å¦è®¡ç®æ©å±åºå°±æ´å¤äºï¼ä¾å¦å¦ä¸3个ååç»å ¸çç§å¦è®¡ç®æ©å±åºï¼NumPyãSciPyåmatplotlibï¼å®ä»¬åå«ä¸ºPythonæä¾äºå¿«éæ°ç»å¤çãæ°å¼è¿ç®ä»¥åç»å¾åè½ãå æ¤Pythonè¯è¨åå ¶ä¼å¤çæ©å±åºæææçå¼åç¯å¢ååéåå·¥ç¨ææ¯ãç§ç 人åå¤çå®éªæ°æ®ãå¶ä½å¾è¡¨ï¼çè³å¼åç§å¦è®¡ç®åºç¨ç¨åºãå¹´3æï¼è¯¥è¯è¨ä½è å¨é®ä»¶å表ä¸å®£å¸Python2.7å°äºå¹´1æ1æ¥ç»æ¢æ¯æãç¨æ·å¦ææ³è¦å¨è¿ä¸ªæ¥æä¹å继ç»å¾å°ä¸Python2.7æå ³çæ¯æï¼åéè¦ä»è´¹ç»åä¸ä¾åºåã
Pythonä¼ç¹
1.ç®å
æ们å¯ä»¥è¯´Pythonæ¯ç®çº¦çè¯è¨ï¼é常æäºè¯»åï¼éå°é®é¢æ¶ï¼ç¨åºåå¯ä»¥ææ´å¤ç注æåæ¾å¨é®é¢æ¬èº«ä¸ï¼èä¸ç¨è±è´¹å¤ªå¤ç²¾åå¨ç¨åºè¯è¨ãè¯æ³ä¸ã
2.å è´¹
Pythonæ¯å è´¹å¼æºçãè¿æå³çç¨åºåä¸ç¨è±é±ï¼å°±å¯ä»¥å ±äº«ãå¤å¶å交æ¢å®ï¼è¿ä¹å¸®å©Pythonå½¢æäºå¼ºå£®ç社åºï¼ä½¿ç¨å®æ´å å®åï¼ææ¯åå±æ´å¿«ãä¸ä¸äººå£«å¯ä»¥å¨ç¤¾åºååå¦è å享ä»ä»¬çç¥è¯åç»éªã
3.å ¼å®¹æ§
Pythonå ¼å®¹ä¼å¤å¹³å°ï¼æ以å¼åè ä¸ä¼éå°ä½¿ç¨å ¶ä»è¯è¨æ¶å¸¸ä¼éå°çå°æ°ã
4.é¢å对象
Pythonæ¢æ¯æé¢åè¿ç¨ï¼ä¹æ¯æé¢å对象ç¼ç¨ãå¨é¢åè¿ç¨ç¼ç¨ä¸ï¼ç¨åºåå¤ç¨ä»£ç ï¼å¨é¢å对象ç¼ç¨ä¸ï¼ä½¿ç¨åºäºæ°æ®åå½æ°ç对象ã尽管é¢å对象çç¨åºè¯è¨é常ååå¤æï¼Pythonå´è®¾æ³ä¿æç®æ´ã
5.åº
Python社åºåé äºä¸å¤§å åç§åæ ·çPythonåºãå¨ä»ä»¬ç帮å©ä¸,ä½ å¯ä»¥ç®¡çææ¡£,æ§è¡åå æµè¯ãæ°æ®åºãwebæµè§å¨ãçµåé®ä»¶ãå¯ç å¦ãå¾å½¢ç¨æ·çé¢åæ´å¤çä¸è¥¿ãææä¸è¥¿å æ¬å¨æ ååº,ç¶è,é¤äºå®,è¿æå¾å¤å ¶ä»çåºã
Pythonè¯è¨çç¨é
å¤å¹´æ¥ï¼Pythonå¨åç§æµè¡ç¼ç¨è¯è¨ä¸ä¸ç´æåé åãå®å ä¹å¯ä»¥éç¨ä»»ä½å¼åï¼å®æ¨å¨æé«ç¨åºåçå¼åæçèä¸å¨äºä»ä»¬ç¼ç代ç ãPythonéç¨äºç½ç«ãæ¡é¢åºç¨å¼åï¼èªå¨åèæ¬ï¼å¤æ计ç®ç³»ç»ï¼ç§å¦è®¡ç®ï¼çå½æ¯æ管çç³»ç»ï¼ç©èç½ï¼æ¸¸æï¼æºå¨äººï¼èªç¶è¯è¨å¤ççå¾å¤æ¹é¢ãèä¸ï¼æ¢ä½¿å¯¹äºé£äºä»æ²¡æå¼åç»éªç人æ¥è®²ï¼Pythonç代ç ä¹æ¯ç®æ´ææçãç±äºPythonç¨åºä»£ç ç®åï¼æ以åä¸å ¶ä»ç¨åºè¯è¨ç¸æ¯ï¼åæçç¨åºç»´æ¤æ´å®¹æï¼æ´èå¿ãä»åä¸è§åº¦æ¥çï¼éè¦çææ¬éä½ï¼ç¨åºåçæçæé«ã
pythonæ¯ä¸ªä»ä¹ä¸è¥¿
Pythonæ¯ä¸ç§è·¨å¹³å°ç计ç®æºç¨åºè®¾è®¡è¯è¨ãæ¯ä¸ä¸ªé«å±æ¬¡çç»åäºè§£éæ§ãç¼è¯æ§ãäºå¨æ§åé¢å对象çèæ¬è¯è¨ãæå被设计ç¨äºç¼åèªå¨åèæ¬ï¼shellï¼ï¼éççæ¬çä¸ææ´æ°åè¯è¨æ°åè½çæ·»å ï¼è¶å¤è¢«ç¨äºç¬ç«çã大å项ç®çå¼åã
Pythonçåå§äººä¸ºè·å °äººåå¤Â·èç½èå§ï¼GuidovanRossumï¼ãå¹´å£è¯èæé´ï¼å¨é¿å§æ¯ç¹ä¸¹ï¼Guido为äºæåå£è¯èçæ 趣ï¼å³å¿å¼åä¸ä¸ªæ°çèæ¬è§£éç¨åºï¼ä½ä¸ºABCè¯è¨çä¸ç§ç»§æ¿ã
ä¹æ以éä¸Pythonï¼å¤§èèçææï¼ä½ä¸ºè¯¥ç¼ç¨è¯è¨çååï¼æ¯åèªè±å½ä¸çºªå¹´ä»£é¦æççµè§åå§ãèæï¼æ´¾æ£®çé£è¡é©¬æå¢ãï¼MontyPythonï¼sFlyingCircusï¼ã
æ©å±èµæï¼
pythonä¸æå°±æ¯èèçææãå¨è®¡ç®æºä¸ï¼å®æ¯ä¸ç§ç¼ç¨è¯è¨ãPythonï¼è±è¯åé³ï¼ï¼?pa?θ?nï¼ï¼ï¼æ¯ä¸ç§é¢å对象ã解éå计ç®æºç¨åºè®¾è®¡è¯è¨ï¼ç±GuidovanRossumäºå¹´åºåæï¼ç¬¬ä¸ä¸ªå ¬å¼åè¡çåè¡äºå¹´ãPythonè¯æ³ç®æ´èæ¸ æ°ï¼å ·æ丰å¯å强大çç±»åºã
å®å¸¸è¢«æµç§°ä¸ºè¶æ°´è¯è¨ï¼å®è½å¤æç¨å ¶ä»è¯è¨å¶ä½çåç§æ¨¡åï¼å°¤å ¶æ¯Cï¼Cï¼ï¼ï¼å¾è½»æ¾å°èç»å¨ä¸èµ·ã常è§çä¸ç§åºç¨æ å½¢æ¯ï¼ä½¿ç¨Pythonå¿«éçæç¨åºçååï¼ææ¶çè³æ¯ç¨åºçæç»çé¢ï¼ï¼ç¶åå¯¹å ¶ä¸æç¹å«è¦æ±çé¨åï¼ç¨æ´åéçè¯è¨æ¹åã
æ¯å¦3D游æä¸çå¾å½¢æ¸²æ模åï¼æ§è½è¦æ±ç¹å«é«ï¼å°±å¯ä»¥ç¨C++éåã1åå±åç¨ç¼è¾èªä»ä¸çºªå¹´ä»£åPythonè¯è¨è¯çè³ä»ï¼å®éæ¸è¢«å¹¿æ³åºç¨äºå¤çç³»ç»ç®¡çä»»å¡åWebç¼ç¨ãPythonå·²ç»æ为æå欢è¿çç¨åºè®¾è®¡è¯è¨ä¹ä¸ã
åèèµæï¼
ç¾åº¦ç¾ç§-Python
ParaView 源码编译教程
ParaView-5..0的源码在年月日,由作者陌尘分享了一个Windows H2平台下的编译教程,使用了Visual Studio 、CMake 3..1 x版本,以及Qt 5..、Python 3..8和Microsoft MPI v.1.2作为依赖。苹果plist源码请注意,编译过程和环境设置可能需要根据个人的设备和需求进行调整,参考链接为Building ParaView。
步骤1:首先,确保从ParaView官网下载最新源码,GitHub上的版本可能缺少VTK模块,因此直接从官方获取是必要的。
步骤2:接着,进行CMake配置,这是编译过程的关键步骤,通过CMake工具将源代码与编译器和依赖项连接起来,生成可编译的项目文件。
步骤3:配置完毕后,使用Visual Studio 打开生成的项目文件,开始VS编译过程。确保所有依赖项已经正确安装并配置,然后启动编译,synctoy源码生成ParaView的可执行文件。
python是什么意思-含义详解
python 中文就是蟒蛇的意思。
在计算机中,它是一种编程语言。
Python(英语发音:/paθn/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于年底发明,第一个公开发行版发行于年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C++重写。
1,发展历程编辑
自从世纪年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。dreamweaver源码Python[1] 已经成为最受欢迎的程序设计语言之一。年1月,它被TIOBE编程语言排行榜评为年度语言。自从年以后,python的使用率是呈线性增长[2] 。
由于Python语言的简洁、易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学
已经采用Python教授程序设计课程。例如卡耐基梅隆大学的编程基础和麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学
计算软件包都提供了Python的调用接口,
例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的
科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语
言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,艾灸源码甚至开发科学计算应用程序。
说起科学计算,首先会被提到的可能是MATLAB。然而除了MATLAB的一些专业性很强的工具箱还无法替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库。和MATLAB相比,用Python做科学计算有如下优点:
● 首先,MATLAB是一款商用软件,并且价格不菲。而Python完全免费,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。
● 其次,与MATLAB相比,Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。
● 最后,MATLAB主要专注于工程和科学计算。然而即使在计算领域,也经常会遇到文件管理、慈善源码界面设计、网络通信等各种需求。而Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。
2,产生
Python的创始人为Guido van Rossum。年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。
ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC
这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido
决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。
就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。
3,风格
Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim
Peters写的Python格言(称为The Zen of Python)里面表述为:There should be one-- and
preferably only one --obvious way to do it. 这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There’s More Than One Way To Do It)完全相反。
Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。
一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言
是用一对花括号{ }来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列
方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。
4,设计定位
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。
Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝
花俏的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大
规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。
Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢。不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师
倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。可用的JIT技术是PyPy。
Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。
虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。
Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和
工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue
language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google
Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利(AlexMartelli)说:“这很难讲,不过, 年,Python 已在 Google 内部使用,Google 召募许多 Python高手,但在这之前就已决定使用Python,他们的目的是 Python where we can, C++ where we
must,在操控硬件的场合使用 C++,在快速开发时候使用 Python。
vtkå¨Java2ä¸ç使ç¨
ããVTK(Visualization ToolKit)æ¯ä¸ä¸ªå¼æ¾æºç èªç±è·åçè½¯ä»¶ç³»ç» å ¨ä¸ççæ°ä»¥å计çç 究人ååå¼å人åç¨å®æ¥è¿è¡ D计ç®æºå¾å½¢ å¾åå¤ç å¯è§å VTKå å«ä¸ä¸ªc++ç±»åº ä¼å¤çç¿»è¯æ¥å£å± å æ¬Tcl/Tk Java Python ããããVisualization Toolkit æ¯ä¸ä¸ªç¨äºå¯è§ååºç¨ç¨åºæé ä¸è¿è¡çæ¯æç¯å¢ å®æ¯å¨ä¸ç»´å½æ°åºOpenGL çåºç¡ä¸éç¨é¢å对象ç设计æ¹æ³åå±èµ·æ¥ç å®å°æ们å¨å¯è§åå¼åè¿ç¨ä¸ä¼ç»å¸¸éå°çç»èå±è½èµ·æ¥ 并å°ä¸äºå¸¸ç¨çç®æ³å°è£ èµ·æ¥ æ¯å¦Visualization Toolkit å°æ们å¨è¡¨é¢é建ä¸æ¯è¾å¸¸è§çMarching Cubes ç®æ³å°è£ èµ·æ¥ ä»¥ç±»çå½¢å¼ç»æ们以æ¯æ è¿æ ·æ们å¨å¯¹ä¸ç»´è§åç¹éµæ°æ®è¿è¡è¡¨é¢é建æ¶å°±ä¸å¿ åéå¤ç¼åMarchingCubes ç®æ³ç代ç èç´æ¥ä½¿ç¨Visualization Toolkit ä¸å·²ç»æä¾çvtkMarchingCubes ç±»ããããVisualization Toolkit æ¯ç»ä»äºå¯è§ååºç¨ç¨åºå¼åå·¥ä½çç 究人åæä¾ç´æ¥çææ¯æ¯æçä¸ä¸ªå¼ºå¤§çå¯è§åå¼åå·¥å · å®ä»¥ç¨æ·ä½¿ç¨çæ¹ä¾¿æ§åçµæ´»æ§ä¸ºä¸»è¦åå å ·æå¦ä¸çç¹ç¹ ãããã ) å ·æ强大çä¸ç»´å¾å½¢åè½ Visualization Toolkit æ¢æ¯æåºäºä½ç´ Voxel basedrendering çä½ç»å¶Volume Renderingåä¿çäºä¼ ç»çé¢ç»å¶ ä»èå¨æ大çæ¹åå¯è§åææçåæ¶åå¯ä»¥å åå©ç¨ç°æçå¾å½¢åºåå¾å½¢ç¡¬ä»¶ãããã ) Visualization Toolkit çä½ç³»ç»æä½¿å ¶å ·æé常好çæµstreaming åé«éç¼åcaching çè½å å¨å¤ç大éçæ°æ®æ¶ä¸å¿ èèå åèµæºçéå¶ãããã ) Visualization Toolkit è½å¤æ´å¥½çæ¯æåºäºç½ç»çå·¥å ·æ¯å¦Java åVRML éçWeb åInternet ææ¯çåå±Visualization Toolkit æçå¾å¥½çåå±åæ¯ãããã ) è½å¤æ¯æå¤ç§çè²å¦OpenGL çãããã ) Visualization Toolkit å ·æ设å¤æ å ³æ§ä½¿å ¶ä»£ç å ·æè¯å¥½çå¯ç§»æ¤æ§ãããã ) Visualization Toolkit ä¸å®ä¹äºè®¸å¤å® è¿äºå®æ大çç®åäºç¼ç¨å·¥ä½å¹¶ä¸å 强äºä¸è´ç对象è¡ä¸ºãããã ) Visualization Toolkit å ·ææ´ä¸°å¯çæ°æ®ç±»å æ¯æ对å¤ç§æ°æ®ç±»åè¿è¡å¤çãããã ) æ¢å¯ä»¥å·¥ä½äºWindows æä½ç³»ç»åå¯ä»¥å·¥ä½äºUnix æä½ç³»ç»æ大çæ¹ä¾¿äºç¨æ·ããããä¸é¢ä»ç»ä¸ä¸VTKå¨JDK _ ä¸ç使ç¨æ¹æ³ ãããã ) ä»vtkçç½ç«()ä¸ä¸è½½ææ°ç软件å çæ¬æ¯ ç¶åæå®å®è£ å°C:\vtk \ç®å½ä¸ãããã ) ä»Sunå®æ¹ä¸è½½é¾æ¥ çæ¬ _ ç¶åå®è£ å°C:\j sdk _ ä¸ãããã ) 设置ç¯å¢åé ç³»ç» >é«çº§ >ç¯å¢åé >path 设置为C:\j sdk _ \bin;C:\ProgramFiles\Java\j re _ \bin;C:\j sdk _ \jre\bin;C:\vtk \binãããã ) æ·è´C:\vtk \bin\*java dllå°ç³»ç»ç®å½ãããã ) ç¼è¯ è¿è¡ 为äºæ¹ä¾¿èµ·è§ æ·è´C:\vtk \Examples\Tutorial\Step \Javaç®å½ä¸çCone javaå°dç å½åç®å½ä¸ºdçããããD:\>javac classpath c:\vtk \bin\vtk jar Cone javaããããD:\>java classpath ;c:\vtk \bin\vtk jar Coneããããæºç å¦ä¸ ãããã//ãããã// This example creates a polygonal model of a cone and then renders it toãããã// the screen It will rotate the cone degrees and then exit The basicãããã// setup of source > mapper > actor > renderer > renderwindow is ãããã// typical of most VTK programs ãããã//ãããã// We import the vtk wrapped classes first ããããimport vtk *;ãããã// Then we define our class ããããpublic class Cone { ããããã// In the static contructor we load in the native code ããããã// The libraries must be in your path to work ãããããstatic { ããããããSystem loadLibrary( vtkCommonJava ); ããããããSystem loadLibrary( vtkFilteringJava ); ããããããSystem loadLibrary( vtkIOJava ); ããããããSystem loadLibrary( vtkImagingJava ); ããããããSystem loadLibrary( vtkGraphicsJava ); ããããããSystem loadLibrary( vtkRenderingJava ); ããããã}ããããã// now the main programãããããpublic static void main (String []args) { ãããããã// ãããããã// Next we create an instance of vtkConeSource and set some of itsãããããã// properties The instance of vtkConeSource cone is part of aãããããã// visualization pipeline (it is a source process object); it produces dataãããããã// (output type is vtkPolyData) which other filters may process ãããããã//ããããããvtkConeSource cone = new vtkConeSource();ããããããcone SetHeight( );ããããããcone SetRadius( );ããããããcone SetResolution( );ãããããã // ãããããã// In this example we terminate the pipeline with a mapper process object ãããããã// (Intermediate filters such as vtkShrinkPolyData could be inserted inãããããã// beeen the source and the mapper )ãWe create an instance ofãããããã// vtkPolyDataMapper to map the polygonal data into graphics primitives Weãããããã// connect the output of the cone souece to the input of this mapper ãããããã//ããããããvtkPolyDataMapper coneMapper = new vtkPolyDataMapper();ããããããconeMapper SetInput( cone GetOutput() );ãããããã// ãããããã// Create an actor to represent the cone The actor orchestrates renderingãããããã// of the mapper s graphics primitives An actor also refers to propertiesãããããã// via a vtkProperty instance and includes an internal transformationãããããã// matrix We set this actor s mapper to be coneMapper which we createdãããããã// above ãããããã//ããããããvtkActor coneActor = new vtkActor();ããããããconeActor SetMapper( coneMapper );ãããããã//ãããããã// Create the Renderer and assign actors to it A renderer is like aãããããã// viewport It is part or all of a window on the screen and it isãããããã// responsible for drawing the actors it has ãWe also set the backgroundãããããã// color hereãããããã//ããããããvtkRenderer ren = new vtkRenderer();ããããããren AddActor( coneActor );ããããããren SetBackground( );ãããããã//ãããããã// Finally we create the render window which will show up on the screenãããããã// We put our renderer into the render window using AddRenderer We alsoãããããã// set the size to be pixels by ãããããã//ããããããvtkRenderWindow renWin = new vtkRenderWindow();ããããããrenWin AddRenderer( ren );ããããããrenWin SetSize( );ãããããã//ãããããã// now we loop over degreeees and render the cone each timeãããããã//ããããããint i;ããããããfor (i = ; i < ; ++i)ããããããã{ ããããããã// render the imageãããããããrenWin Render();ããããããã// rotate the active camera by one degreeãããããããren GetActiveCamera() Azimuth( );ããããããã}ãããããã} ãã} lishixinzhi/Article/program/Java/JSP//