NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 27530|回复: 19
打印 上一主题 下一主题

[工作记录] P5画圈圈

[复制链接]
跳转到指定楼层
1m
发表于 2011-7-4 13:53:59 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
这是我画的

P_2_2_5_01.pde

3.85 KB, 下载次数: 22, 下载积分: 照度 -1 lux

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
2m
 楼主| 发表于 2011-7-4 13:55:30 | 显示全部楼层
其实我是根据gh代码改的 ArrayList L=new ArrayList (); //PeasyCam cam; int total=400; float x[]=new float[total]; OnCircle c1; OnCircle c2; PFont font; public void setup() { // // cam = new PeasyCam(this, 200); // cam.setMinimumDistance(50); //cam.setMaximumDistance(5000); size(600,400); noLoop(); ellipseMode(CENTER); background(255); font= createFont("FFScala", 10); textFont(font); for(int i=0;i3){x[i]= random(15,30);} else {x[i]= random(8,14);} } c1=new OnCircle(new On3dPoint(width/2,height/2,0), x[0]); c2=new OnCircle(new On3dPoint(x[1]+width/2 + x[0],height/2,0), x[1]); L.add(c1);L.add(c2); line(c1.Center.x,c1.Center.y,c2.Center.x,c2.Center.y); ///* for(int i=2;i=0;j-=1){ if (L.get(j).Center.DistanceTo(c3.Center)*1.02 < (L.get(j).radius + c3.radius)){ c1 =(OnCircle)L.get(j); sign = false; break; } } count += 1; } while(count<20 && sign == false); if (sign){ L.add(c3); line(c3.Center.x,c3.Center.y,c2.Center.x,c2.Center.y); c2 = c3 ; line(c1.Center.x,c1.Center.y,c2.Center.x,c2.Center.y); } } //*/ } public OnCircle circle(OnCircle c1, OnCircle c2, float r ) { float l1 = c1.Center.DistanceTo(c2.Center); float l2 = c1.radius + r; float l3 = c2.radius + r; float n = (float) Math.acos((l1 *l1 + l2 *l2 - l3 *l3) / (2 * l1 * l2)); On3dVector v =new On3dVector(c2.Center.x - c1.Center.x, c2.Center.y - c1.Center.y, c2.Center.z - c1.Center.z); v.Rotate(n, new On3dVector(0, 0, 1)); v.Unitize(); v .mul(l2); On3dPoint p =new On3dPoint(c1.Center.x + v.x, c1.Center.y + v.y, c1.Center.z + v.z); return new OnCircle(p, r); } public void draw(){ for(int i=0;i
3m
 楼主| 发表于 2011-7-4 13:56:49 | 显示全部楼层
要问我为啥能用On3dPoint和On3dVector类 哎呀 那是因为我用java重写了opennurbs的部分类嘛
4m
 楼主| 发表于 2011-7-4 17:23:38 | 显示全部楼层
6# holonking 还是师傅您识货 我只是重写了一部分 主要是按方案需要多少就重写多少 慢慢加上去的 OpenNurbs的C++代码网上是可以下载的 可以通过两种方式重写 第一是源代码的翻写 这也是我做的 第二种是写出Java接口,再通过JavaNative替换Cpp文件的函数,网上有。net的例子,可以参考
5m
 楼主| 发表于 2011-7-4 23:03:31 | 显示全部楼层
10# darklight 只是一小部分啊 不要曲解啊~~~

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-5-6 05:31 , Processed in 0.319547 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表