⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zigzag.cpp

📁 可以选择各种压缩方式对读入的图像进行压缩和解压
💻 CPP
字号:
#include "stdafx.h"
#include "zigzag.h"
coordinate zigzagPos[63];
//zigzagPos[0]=(1,0) [0~62]

unsigned short int zigzag(int &x, int &y, int &d, int N){
//Move cursor to the next point of zigzag on N*N map, and return 1 when current cursor is the last one
//d stands for direction: always x+direction, y-direction, left-down for -1
	if ((x==(N-1))&&(y==(N-1)))
	{
		x=1; y=0;
		return 1;
	}
	else
	{
		if (((x+=d)<0)|( (y-=d)<0)|| x==N || y==N)
		{
			d=-d;
			if (y==N) {
				y--;
				x+=2;
			}
			else 
			if (x==N) {
				x--;
				y+=2;
			}
			else {
				if (y<0) y=0;
				if (x<0) x=0;
			}
		}
		return 0;
	}
}

void initZigZag(int N){
	int x=1, y=0, d=-1;
	zigzagPos[0].x=x;
	zigzagPos[0].y=y;
	for (int i=1;i<N*N-1;i++){
		zigzag(x,y,d,N);
		zigzagPos[i].x=x;
		zigzagPos[i].y=y;
	}
}

void fastZigZag(int i, int &x, int &y){
	x=zigzagPos[i].x;
	y=zigzagPos[i].y;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -