立方体自动拼图软件(代码、注释、输出效果)

本文介绍了一款自动拼图软件,该软件能根据6块正方形图片生成立方体拼接方案。通过输入立方体尺寸,程序会随机生成6张碎片,并遍历所有可能的拼接组合(5! × 8^5种),找到可行的解决方案。最终,软件将展示生成的拼图碎片和有效的拼接布局。
摘要由CSDN通过智能技术生成

小小手痒,写了一个立方体自动拼图软件。

需求:任意给出6块正方形图片,寻找能把它们作为一个立方体的6面拼接起来的方案。

拼接结果图示:




代码:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class CubeMatch {

	// 返回整数数组is[]的全排列
	public static List<int[]> permutation(List<int[]>list, int[] is) {
		List<int[]> r = new ArrayList<int[]>();
		if (list.size()==0) 
			r.add(Arrays.copyOfRange(is, 0, 1));
		else 
			for (int i=0; i<list.size(); i++) {
				int[] ois = list.get(i);
				for (int j=0; j<=ois.length; j++) {
					int[] nis = new int[ois.length+1];
					for (int k=0; k<nis.length; k++) 
						nis[k] = k==j? is[0] : (k<j? ois[k]: ois[k-1]);
						r.add(nis);	
				}
			}
		if (is.length==1) return r;
		else {
			int[] nis = Arrays.copyOfRange(is, 1, is.length);
			return permutation(r, nis);
		}
	}

	// 拼图匹配用的方法
	public static Arris[] put(int[] permu, int[] edges) {
		Arris[] as = new Arris[24];
		for (int i=0; i<4; i++) {
			as[i*2] = new Arris(0,i);
			as[i*2+1]= new Arris(permu[i], edges[i]);
			as[8+i*2]= new Arris(permu[i],edgePlus(edges[i],1));
			as[8+i*2+1]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
================================================================================================== 电子地图一把抓V1.0 Google Earth非完美版及无损压缩版 解决了电子地图一把抓原版的下列问题: ● 抓Google Earth卫图时导致地球旋转,无法正确抓图的问题 ● 抓非卫图地图时,在道路边界及文字附近出现噪点问题。去除噪点后,可以制作出更清晰、也更小的最终文件 GE非完美版的非完美性表现在: 抓Google Earth带KML/KMZ地标显示的卫图时,在某次自动移动地球时,若GE抓手下方恰好有图标,在目前最新的 GE V4.3beta版中测试的结果看,抓手会“滑”一小段,导致错位。 但实测无图标显示的KML/KMZ或关闭其图标,显示道路及面状物时,未测出问题(未进行大量测试)。因此电子地 图一把抓GE非完美版可以制作GE卫图底图+不带图标的KML/KMZ的地图。有图标时,需仔细检查,有问题可稍微改 变一下起点位置或抓图区域大小重抓试验。 可执行文件说明: MapCap.exe 原版本 MapCap_LZW.exe 24位模拟式下将TIF文件从有损JPEG压缩改为无损LZW压缩,解决图像出现噪点的问题。 推荐用于抓取非卫图的地图。 MapCap_GE.exe 用于Google Earth,非完美(屏幕上图标较密集时有可能导致错位)。存储的结果TIF 文件24位模式下与原版一样,采用有损JPEG压缩。 MapCap_GE_LZW.exe 同MapCap_GE.exe,但24位模拟式下采用无损LZW压缩。 推荐用于抓取Google Earth卫图,特别是带KML显示时,但有图标显示时需仔细检查结果 是否有错位的现象。 注:电子地图一把抓的所有权利完全归原作者Kenchang所有。感谢Kenchang编写这么实用又有生命力的软件。 2009.1.2 ================================================================================================== kenchang对原版的说明: 1、软硬件要求 2、安装卸载说明 3、已知问题 4、版权声明 1、软硬件要求 可运行在Windows98/ME/2000/XP之上,CPU为奔腾133以上,内存32M以上。抓取大图时会需要大量内存, 建议内存为512M以上。 2、安装卸载说明 本软件为绿色软件,将所有文件复制到同一目录中,运行mapcap.exe即可。删除时将该目录下的所有文件删除。 3、已知问题 本软件未经广泛测试,谬误在所难免 4、版权声明 本软件为免费软件,不提供任何形式的技术支持。本软件仅供学习交流用途, 不得用于任何形式的商业目的或其他非法目的,在抓图之前应先取得原版权所有者的同意, 使用本软件造成的任何后果均与本软件作者无关。 kenchang
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值