生物信息资源更新越来越快,使用可视化的方法来分析DNA序列已成为生物信息学的一个研究热点,用图形表示DNA序列的方法也越来越成熟。2011年,著名杂志《Science》发表一篇引起轰动的文章:《Presenting the Human Genome:Now is 3D!》,这篇文章全然给我们描写叙述了人类基因组測序未来的蓝图,可见3D技术在非常多领域都是发展方向。
使用mono能够高速的创建DNA分子结构立体模型,效果例如以下:
当然简单的呈现DNA分子结构,不过一部分功能,假设将mono和专业的DNA分析仪结合。不仅能够发现病症。更重要的是预測病症的发生,治病于未发,这将是人类的福音。除了研究人类基因之外,我们还能够对农作物的进行DNA3D模型化,并加以分析。对农业的发展和粮食安全方面都会有积极的意义。
使用mono创建3D模型最大的特点就是快。代码只是几十行,使用Editor更是不须要代码量。
本文的效果图通过代码实现。核心代码例如以下:
1 |
function
createDNA(box, x, y, z, colors){ |
2 |
var
count= 20 +Math.random()* 50 ; |
4 |
var
parent=createNode(box, 10 , 0 , 0 , 0 , 'red' ); |
5 |
for (var
i= 0 ;i<count;i++){ |
6 |
var
angle=Math.PI* 2 / 360 * 15 *i; |
7 |
var
radius = (i % 2 == 0 )
?
10 : 7 ; |
8 |
var
color = colors[i% 2 ] |
9 |
var
node1=createPairNode(box, dist, radius, i, angle, color); |
10 |
var
node2=createPairNode(box, dist* 0.3 ,
radius, i, angle, color); |
11 |
node1.setParent(parent); |
12 |
node2.setParent(parent); |
15 |
var
link=createLink(box, node1, node2, dist, angle, 'gray' ); |
16 |
var
node3=createPairNode(box, dist* 0.58 ,
radius* 0.4 ,
i, angle, 'cyan' ); |
17 |
var
node4=createPairNode(box, dist* 0.72 ,
radius* 0.4 ,
i, angle, 'cyan' ); |
18 |
link.setParent(parent); |
19 |
node3.setParent(parent); |
20 |
node4.setParent(parent); |
23 |
parent.setPosition(x,y,z); |
24 |
parent.setStyle( 'm.visible' , false ); |
1 |
function
createPairNode(box, size, radius, index, angle, color){ |
2 |
var
x=size*Math.sin(angle); |
3 |
var
z=size*Math.cos(angle); |
5 |
var
node = createNode(box, radius, x, y, z, color); |
- 分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型
这张图每位程序员应该都深有感触. 人民心目中的程序员是这样的:坐在电脑面前噼里啪啦敲着键盘,运键如飞. 现实中程序员是这样的:编码5分钟,调试两小时. 今天我要给大家分享一个用WebGL开发的网站,感 ...
- Unity3D游戏开发初探—2.初步了解3D模型基础
一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...
- Mask裁切UI粒子特效或者3D模型
刚好前几天有人问我这个问题,再加上新项目也可能用,所以这两天就研究了一下.其实如果粒子特效 和3D模型 都用RenderTexture来做的话就不会有裁切的问题,但是粒子特效用RenderTextur ...
- 如何让NGUI的对象在3D模型之上
假设场景中有两台摄像机, 一台是NGUI的摄像机, 另外一台是投影摄像机. 投影摄像机看的是3D模型, Depth比NGUI的摄像机要大, Clear Flags设置的是Depth only. 现在想 ...
- HT for Web自定义3D模型的WebGL应用
有不少朋友询问<HTML5 Web 客户端五种离线存储方式汇总>文章例子的3D表计模型是如何生成的,这个例子是通过导入3dmax设计好的表计模型,然后通过obj格式导入到HT for We ...
- 8月7号晚7点Autodesk北京办公室,我们来聊聊HTML5/ WebGL 3D 模型浏览技术
Autodesk 发布了一款完全无需插件的三维模型浏览器 Autodesk 360 Viewer,大家有没有兴趣,下班后过来聊聊吧! 8月7号 周四, 19:00~21:00 Autodesk北京 ...
- WPF 3D模型 3D场景
1.首先得说明的是这并不是真正的3D,模型被导出为一系列的单个图片,例如一个3D户型图,以某个视角旋转360°,渲染出一系列连续的单个图片文件. 2.在Image.MouseMove事件中添加相应代码 ...
- unity3d设置3D模型显示在2D背景之前(多个相机分层显示)(转)
解决步骤: 1.添加一个摄像机,命名为BackgroundCamera,然后在Layer添加一个background层.并且将plane拖放到改相机节点下. 然后将BackgroundCamera和P ...
- 关于PCB 3D 模型的快速导入方法
altium designer中创建的3D library 只能查看3D效果,并没有其他功能,经测试在原理图编辑界面通过给元件添加 PCB 3D 并不能真正添加3D模型,这样添加根本没有效果(显示不出 ...
随机推荐
- bzoj 2503 相框 分类讨论
题目大意:给定一张无向图,每次可以进行以下两种操作: 1.将一个点分裂成一些点,原先这个点连接的每条边任选一个新点进行连接 2.将两个度数为1的点合并为1个点 求将这个图变成一个环的最小操作次数 我们 ...
- linux之stat
stat指令:文件/文件系统的详细信息显示: 使用格式:stat 文件名 stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: -f 不显示文件本身的信息,显示文件所在文件系统的信 ...
- JS允许找不到对象 不必判断是否存在某个div
原文发布时间为:2009-11-10 -- 来源于本人的百度文章 [由搬家工具导入] 加一个try catch 即可。。。。 例子: for(var i=0;i<10;i++) { ...
- ashx接收参数 ashx传递参数
原文发布时间为:2009-09-30 -- 来源于本人的百度文章 [由搬家工具导入] Handler.ashx文件: <%@ WebHandler Language="C#" ...
- 《手把手教你学C语言》学习笔记(6)---数据类型和常量
计算机中需要保存信息,就需要数据存储,数据的存储就需要划分数据类型.主要包括:基本数据类型.指针类型.构造类型.空类型. 基本类型:整型---主要用来表示整数,可以分为无符号和有符号:又分为基本整型. ...
- 刷leetcode是什么样的体验?【转】
转自:https://www.zhihu.com/question/32322023 刷leetcode是什么样的体验? https://leetcode.com/ 1 条评论 默认排序 按时间排 ...
- LeetCode OJ-- Flatten Binary Tree to Linked List **
https://oj.leetcode.com/problems/flatten-binary-tree-to-linked-list/ 二叉树的处理,将二叉树转换成类似一个单链表的东东,并且原地. ...
- Android中节操播放器JieCaoVideoPlayer使用
效果 使用 即便是自定义UI,或者对Library有过修改,也是这五步骤来使用播放器. 1.添加类库 compile 'cn.jzvd:jiaozivideoplayer:6.0.0' 2.添加布局 ...
- (4)JavaScript引用类型
Object类 创建object实例的方式有两种 1.第一种是使用 new 操作符后跟 Object 构造函数 var person = new Object(); person.name = &qu ...
- webpack学习(一)安装和命令行、一次js/css的打包体验及不同版本错误
一.前言 找了一个视频教程开始学习webpack,跟着视频学习,在自己的实际操作中发现,出现了很多问题.基本上都是因为版本的原因而导致,自己看的视频是基于webpack 1.x版,而自己现在早已是we ...