/**
* @describe of 打印图片
* @author 孤雪飘寒 <38197125@qq.com>
* @copyright (c) 2016
* @datetime 2016-8-8 0:58:01
*/
var printStr = "";
/**
* 文字说明
* @method Name
* @param {[String]} name [文字说明]
* @param {[String]} c [长度]
* @param {[String]} k [宽度]
*/
function Name(name, c, k) {
n(1);
console.log(name + "长度:" + c + "," + "宽度:" + k + ".");
}
/**
* 换行:美观
* @method n
* @param {[type]} i [1:打印换行 0:字符串加入换行符号]
*/
function n(i) {
if (i) {
console.log('\n');
} else {
printStr += "\n";
}
}
/**
* 选择传入字符,以及一行显示多少
* @method printChar
* @param {[type]} char [description]
* @param {[type]} n [description]
*/
function printChar(char, n) {
for (var i = 0; i < n; i++) {
printStr += char;
}
}
/**
* 矩形
* @method rectangle
* @param {[type]} name [名字]
* @param {[type]} c [长度]
* @param {[type]} k [宽度]
* @param {[type]} boolean [是否显示空心]
*/
function rectangle(name, c, k, boolean) {
Name("打印图形:" + name + ":", c, k);
if (boolean) {
if (k < 3) {
printStr = "宽度低于3不可以显示空心";
} else {
for (var i = 1; i <= k; i++) {
if (i == 1 || i == k) {
printChar(' *', c);
} else {
printChar(' *', 1);
printChar(' ', c - 2);
printChar(' *', 1);
}
n();
}
}
} else {
for (var i = 0; i < k; i++) {
printChar(' *', c);
n();
}
};
console.log(printStr);
printStr = "";
}
/**
* 正方形
* @method quadrate
* @param {[type]} name [名字]
* @param {[type]} a [边长]
* @param {[type]} boolean [是否显示空心]
*/
function quadrate(name, a, boolean) {
rectangle(name, a, a, boolean);
}
/**
* 等腰三角形
* @method triangle
* @param {[type]} w [宽度]
* @param {[type]} boolean [是否显示空心]
*/
function triangle(w, boolean) {
var h = w;
if (boolean) {
if (w <= 4) {
printStr = "空心等腰三角形边长小于4看不出来效果";
} else {
Name("打印图形: 空心等腰三角形" + ":", w, w);
for (var i = 0; i < w; i++) {
if (i < 2 || i == (w - 1)) {
// console.log(i + ":" + w);
printChar(" ", h - 1);
printChar(" *", i + 1);
} else {
printChar(" ", h - 1);
printChar(" *", 1);
printChar(" ", i * 2 - 2);
printChar(" *", 1);
}
n();
h--;
}
}
} else {
Name("打印图形: 实心等腰三角形" + ":", w, w);
for (var i = 0; i < w; i++) {
printChar(" ", h - 1);
printChar(" *", i + 1);
n();
h--;
}
}
console.log(printStr);
printStr = "";
}
/**
* 等腰梯形
* @method trapezium
* @param {[type]} w [宽度]
* @param {[type]} boolean [是否显示空心]
*/
function trapezium(w, boolean) {
var h = w;
if (boolean) {
if (w < 5) {
printStr = "空心等腰梯形长度小于4效果不好看";
} else {
Name("打印图形: 空心等腰梯形" + ":", w, w);
for (var i = 0; i < w; i++) {
if (i > (w / 2) - 1) {
if (i < (w / 2) || i == (w / 2) || i == (w - 1)) {
printChar(" ", h - 1);
printChar(" *", i + 1);
} else {
printChar(" ", h - 1);
printChar(" *", 1);
printChar(" ", i * 2 - 2);
printChar(" *", 1);
}
n();
}
h--;
}
}
} else {
if (w < 5) {
printStr = "为了更好的效果,请输入大于4的长度";
} else {
Name("打印图形: 实心等腰梯形" + ":", w, w);
for (var i = 0; i < w; i++) {
if (i > (w / 2) - 1) {
printChar(" ", h - 1);
printChar(" *", i + 1);
n();
}
h--;
}
}
}
console.log(printStr);
printStr = "";
}
rectangle("矩形", 10, 5);
quadrate("正方形", 5);
triangle(5);
trapezium(5);
rectangle("矩形", 10, 5, true);
quadrate("正方形", 5, true);
triangle(5, true);
trapezium(15, true);