如何用编程语言绘制仿出如下图片的浅浅ppt绘制不规则图形的模糊效果?请帮忙提供思路,谢谢!

查看: 4637|回复: 10|关注: 0
不规则网格上的数据怎么用图像表示?谢谢
<h1 style="color:# 麦片财富积分
新手, 积分 10, 距离下一级还需 40 积分
11.JPG (32.47 KB, 下载次数: 0)
19:18 上传
我的网格是六边形的,相当于交错网格,现在我有网格的横、纵坐标和格点上的数据,应该用什么命令才能用图形表示呢? 我查了一些命令,如:imagesc,pcolor,surface等好像都不行!哪位朋友帮帮忙? 谢谢了
<h1 style="color:# 麦片财富积分
关注者: 1
关键问题是:不规则网格的矩阵(X矩阵,Y矩阵)怎么表示。能不能先用一个规则矩阵(包括不规则网格的矩阵的所有的点),有值的赋值,没有的赋NAN。然后再用mesh&&或surf。这是我的思路。没有具体做过,不知道对你有没有帮助
<h1 style="color:# 麦片财富积分
关注者: 5
我画了一个简单的图,楼主可以仿照此法来画:
x=1:4*10;
y1=ones(1,4*10);
y2=ones(1,4*10);
for n=1:2*10
& & for m=1:10
& && &&&y1(4*(m-1)+1)=2*n-1;
& && &&&y1(4*(m-1)+2)=2*n-1;
& && &&&y1(4*(m-1)+3)=2*n;
& && &&&y1(4*(m-1)+4)=2*n;
& && &&&y2(4*(m-1)+1)=2*n+1;
& && &&&y2(4*(m-1)+2)=2*n+1;
& && &&&y2(4*(m-1)+3)=2*n;
& && &&&y2(4*(m-1)+4)=2*n;
& & end
& & plot(x,y1)
& & hold on
& & plot(x,y2)
& & hold on
end
axis equal
复制代码
未命名.jpg (62.8 KB, 下载次数: 0)
20:28 上传
<h1 style="color:# 麦片财富积分
首先谢谢楼上的两位朋友!
我想做的是用图形表示不规则网格上的数据,不是画这个不规则网格!
<h1 style="color:# 麦片财富积分
关注者: 5
是不是画个三维图,用z轴表示网格结点的数据?
<h1 style="color:# 麦片财富积分
关注者: 1
稀疏矩阵。。。
结构体。。。(貌似这个不是很好用啊)
先做一个数组或函数将节点编号转换为X-Y坐标值
再做一个稀疏矩阵
没有节点的地方都是0
有节点的地方放数据
[ 本帖最后由 lincong999 于
09:28 编辑 ]
<h1 style="color:# 麦片财富积分
关注者: 1
个人意见:找本数据结构的书 好好看看&图&的部分
你的问题主要是是数据结构方面的问题
<h1 style="color:# 麦片财富积分
你可以试试用trisurf啊~如果你的网格节点是有编号的话,把一个六边形变成两个三角形6*m个节点储存在tri=3*2m矩阵里面画就可以画出来咯~我最近也在搞这种东西,发现这个方法可以~
论坛优秀回答者
关注者: 74
不规则网格数据的表示关键在于两点:
1. 不规则网格的拓扑结构
拓扑结构决定了网格的连接形式,如果要绘制曲面,它决定着曲面的样子。
2. 储存网格信息的数据结构
数据结构属于程序层面,常常跟算法紧密相连,好的数据结构有利于编程,实现轻量级代码化。
通常来说,矩阵只能表示结构化网格或者较为规则的网格,比如都是三角形,都是四边形,都是六边形。当然,由于镶嵌理论,并不是任意多边形都能无缝隙铺满平面的。
由于你这个网格还是相对较为规则的,因为都是正六边形,并且满足平移性质,所以顶点就很好得到了,绘图也就不难弄了。
凡是绘图都有两种方法,一种是基于顶点集-边/面序列,一种是基于点连线。前一种不会出现重复边,但是预处理较为繁琐;后一种直观,但是绘制的图形会有叠加(比如同一条边会被绘制两次)。
一. 绘制平面网格
可以用plot/line/patch来绘制线(具体参见帮助文档),这里我们使用plot,根据上面描述,有两种实现方法:
因为所有六边形的上底和下底构成一套矩形网格(记为网格1),所有六边形的左右端点能构成矩形网格(网格2),因此我们考虑交错矩形网格技术来实现。这种方法是单线连接,因此不会出现同一条边被绘制两次。a=1; % 边长
dx=3*a;
dy=sqrt(3)*a;
m=0; n=0; % 设左下角顶点坐标为(m,n)
tempx=[m+dx*(0:5); m+a+dx*(0:5)];
[x1,y1]=meshgrid(tempx(:),n+dy*(0:6)); % 网格1
tempx=[m-a/2+dx*(0:5); m+1.5*a+dx*(0:5)];
[x2,y2]=meshgrid(tempx(:),n+sqrt(3)/2*a+dy*(0:5)); % 网格2
plot(x1,y1,'k.',x2,y2,'r.'), axis equal, axis off&&% 我们来看看这两套网格的格点
row=size(x1,1)+size(x2,1); col=size(x1,2);
X=zeros(row,col); Y=zeros(row,col);
X(1:2:end,:)=x1; X(2:2:end-1,:)=x2;
Y(1:2:end,:)=y1; Y(2:2:end-1,:)=y2;
hold on
plot(reshape(x1',2,[]),reshape(y1',2,[]),'b',...
& & reshape(x2(:,2:end-1)',2,[]),reshape(y2(:,2:end-1)',2,[]),'b')
plot(X,Y,'b')
title('方法一')
hold off复制代码方法二
由于每个六边形单元的中心构成一个平面三角形网格,所以考虑通过一个六边形克隆平移到这些三角形顶点即可。% 此时m,n表示左下角六边形单元中心坐标
theta=(0:pi/3:2*pi).';
r=1; %半径
x0=r*cos(theta);
y0=r*sin(theta);
[xx1,yy1]=meshgrid(m+dx*(0:5),n+dy*(0:5));
xx2=xx1+1.5*a;& && && & % 右移半格
yy2=yy1+sqrt(3)/2*a;&&% 上移半格
xgrid=bsxfun(@plus,[xx1(:);xx2(:)]',x0);
ygrid=bsxfun(@plus,[yy1(:);yy2(:)]',y0);
figure, plot(xgrid,ygrid,'k')
title('方法二'),axis equal, axis off复制代码2) 绘制曲面
网格得到了,那么曲面或者色彩图像就很容易绘制了,使用patch绘制曲面。z=xgrid.^2-ygrid.^2; % 自定义一个高度值
figure, patch(xgrid,ygrid,z)
axis off, title('平面带色彩')
figure, patch(xgrid,ygrid,z,z)
title('三维带色彩'),view(3)复制代码
搜狗截图14年02月18日1521_1.png (127.91 KB, 下载次数: 0)
15:18 上传
<h1 style="color:# 麦片财富积分
不规则网格数据的表示关键在于两点:
1. 不规则网格的拓扑结构
如下图所示的圆环网格,中间有五个同心圆,现有五个同心圆与径向直线相交节点处的数据,问问怎么把这些数据导入到这些对应的节点上,然后画场图?
谢谢,望指教。
Powered by您的举报已经提交成功,我们将尽快处理,谢谢!
Appearance 属性 (ActiveX 控件)
返回或设置 MDIForm 或 Form 对象上的控件在设计时的绘图风格。在运行时是只读的...
提供下面的文章希望能帮上你的忙:
--用VB6.0编写俄罗斯方块
Visual Basic是微软公司力推的编程工具,它具有易学易用、编程简单...
增大吗?那最好用加法
Text1.FontSize = Text1.FontSize + 5
vb默认字号是9,如果你是在默认字号上加5的话直接写成
大家还关注}

我要回帖

更多关于 css3绘制不规则图形 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信