//寫在前面
//局限性強,輸入坐標按照左上右上右下左下順序,未作判斷
//小坐標系,固定插值描點命中率太低,所以斜線只支持45度角
//深化的話 放大坐標系,描點可以用三角函數來計算,有效擴大描點的命中率
//使用了兩種方法:1、通過單純的描點畫實心圖形 2、以畫線的方式畫空心圖形
var printStr="";
var tArray = new Array();
//初始化、重置坐標系 10*10
function InitStr(){
for(var k=0;k<10;k++){
tArray[k]=new Array();
for(var j=0;j<10;j++){
tArray[k][j]="0";
}
}
}
function Backstr() {
printStr="";
}
function Wrap() {
printStr+="\n";
}
function AddChar() {
printStr+="*";
}
function AddSpace(){
printStr+=" ";
}
//描點畫線 四種算法,橫線、豎線、左傾45、右傾45
//坐標系較小,不考慮其他角度
function line(x1,y1,x2,y2){
if(x1==x2){
for(var x=0;x<=y2-y1;x++){
tArray[y1+x][x1]=1;
}
}else if(y1==y2){
for(var x=0;x<=x2-x1;x++){
tArray[y1][x1+x]=1;
}
}else if(x1>x2&&y1<y2) {
for(var x=0;x<=x1-x2;x++){
tArray[y1+x][x1-x]=1;
}
}else{
for(var x=0;x<=x2-x1;x++){
tArray[y1+x][x1+x]=1;
}
}
}
//全描點畫實心圖形
//可以改成帶參數來決定空心實心,稍作修改即可
function Point(x1,y1,x2,y2,x3,y3,x4,y4) {
var n=0;
for (var i = 0; i<10; i++) {
if(i>=y1&&i<=y4){
if(x2-x1==x3-x4){
for(var j = 0; j <= x2-x1; j++)
{tArray[i][x1+j]=1;}
}else{
for(var j = 0; j <= x2-x1+n; j++)
{tArray[i][x1-i+y1+j]=1;}
n+=2;
}
}
}
}
//四邊形 三角形就是上邊兩個頂點重合
function FourB(x1,y1,x2,y2,x3,y3,x4,y4) {
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x4,y4,x3,y3);
line(x1,y1,x4,y4);
}
//拼接printStr字符串并展示
function Show() {
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if(tArray[i][j]==1){
AddChar();
}else{
AddSpace();
}
}
Wrap();
}
console.log(printStr);
}
console.log('打印坐標為 2,0,7,0,7,5,2,5 的實心矩形');
InitStr();
Backstr();
Point(2,0,7,0,7,5,2,5);
Show();
console.log('打印坐標為 5,0,5,0,8,3,2,3 的實心三角形');
InitStr();
Backstr();
Point(5,0,5,0,8,3,2,3);
Show();
InitStr();
Backstr();
console.log('打印坐標為 3,0,6,0,9,3,0,3 的實心梯形');
Point(3,0,6,0,9,3,0,3);
Show();
//三角形
InitStr();
Backstr();
console.log('打印坐標為 5,0,5,0,8,3,2,3 的空心三角形');
FourB(5,0,5,0,8,3,2,3);
Show();
//矩形
InitStr();
Backstr();
console.log('打印坐標為 2,0,7,0,7,5,2,5 的空心矩形');
FourB(2,0,7,0,7,5,2,5);
Show();
//梯形
InitStr();
Backstr();
console.log('打印坐標為 3,0,6,0,9,3,0,3 的空心梯形');
FourB(3,0,6,0,9,3,0,3);
Show();
20160805周國康作業-繪制實心/空心圖形
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 看完之前兩篇介紹基礎的文章后,是不是感覺CAD沒有那么難了。或者說你感覺到更難了?這篇文章開始,我們正式開始用CA...