有没有办法将一幅图片随机切成N个不规则的碎块

大可山人
博客专家认证
2005-12-16 04:58:48
有没有办法将一幅图片随机切成N个不规则的碎块,就好象打碎的玻璃一样?思路?
我是想生成那种完全不规则的,边缘就象地图的边界一样的那种。
...全文
215 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果你需要对每个小块移动,着色等处理。分形就不太合适了,只要简单的递归或者循环的就可以了。
如果是递归可以这样做
我们用一个白色的矩形代表玻璃吧。

Break(P[N][L]){
if(N==0){
随机生产一个多边形顶点数N;
for(int i=0;i<N;i++){
随机生成这个N多边形的第i个定点P[i][L+1];
}
}
else
{
//根据P[i][L]生成P[i][L+1]
//中心点 PC
P[i][L+1]= PC.x+(PC.x-P[i][L])*每层扩大倍数;

//绘制经线
LINE(P[i][L],P[i][L+1]);


//绘制纬线,分割过长的线
for(int i=0;i<N;i++)
{
int end=(N+1)%N ;
//绘制纬线
LINE(P[i][L+1],P[end][L+1]);
if( P[i][L+1]到P[end][L+1]距离 > 碎片长度)
在 P[i][L+1]P[end][L+1]中点附近产生一个随机点插入到P[i][L+1]后面;
}
}
Break(P[i][L+1]);
return
}
xiaoxiaofei 2005-12-19
  • 打赏
  • 举报
回复
递规终止条件:
1、和别的射线相交,形成闭合
2、和边界相交
3、规模达到一定程度(时间或者射线条数)
xiaoxiaofei 2005-12-19
  • 打赏
  • 举报
回复
觉得可以。参考砖头砸玻璃~~
首先,随即选定一个扔砖头的点,然后随即选定由点辐射出去的几条线以及辐射方向,然后开始蔓延(好像是递归??),如果初始辐射的线不再增加,则看上去不太自然,但是很简单;如果可以随即增加(增加规模可控),需要递归计算且比较麻烦。

一点想法,仅供参考
大可山人 2005-12-19
  • 打赏
  • 举报
回复
谢谢小小飞。
这样,好象涉及到分形学?
可惜找不到相关的书籍和资料。

欢迎大家多建议。
Thomasdu 2005-12-17
  • 打赏
  • 举报
回复
有意思,你想作什么,应该是可以的

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧