亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? microcad.c

?? C語言高級實例解析的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
				goto newmove; } }

		i = dtop;
		dtop = psave + 1;
		draw(x);
		draw(y);
		dtop = i;

skipmove:
		pixel = SET_PIXEL;
		message();
		dpos = psave;
		draw_object(0, 0); }
}


copy()
{
	unsigned psave, i, x, y, sx, sy;

	if(select_object("DUP")) {
		psave = dpos;
		++dpos;
		sx = dvalue();
		sy = dvalue();
		pixel = SET_PIXEL;
		dpos = psave;
		draw_object(0, 0);
		pixel = FLIP_PIXEL;
		message();
		printf("DUP: Select new position");
	newcopy:
		dpos = psave;
		draw_object((x = mousex) - sx, (y = mousey) - sy);
		while(!((i = mouse_status()) & MOUSE_LEFT)) {
			if(i & MOUSE_RIGHT) {
				dpos = psave;
				draw_object(x - sx, y - sy);
				message();
				return; }
			if((x != mousex) || (y != mousey)) {
				dpos = psave;
				draw_object(x - sx, y - sy);
				goto newcopy; } }

		drawing[dpos = dtop++] = ACOPY;
		draw(x);
		draw(y);
		draw(psave);

		message();
		pixel = SET_PIXEL;
		draw_object(0, 0); }
}


draw_object(xoffset, yoffset)
	int xoffset, yoffset;
{
	int x, y, i, j, k, l;
	char buffer[80], *ptr;

	if(cursor_flag)
		mouse_status();

	if(!(i = drawing[dpos++]))
		return -1;
	x = dvalue() + xoffset;
	y = dvalue() + yoffset;
	if(!tick++)
		box(max(0, x-1), max(0, y-1), min(HORIZONTAL-1, x+1), min(VERTICAL-1, y+1));

	switch(i) {
		case LINE :
			line(x, y, x+dvalue(), y+dvalue());
			break;
		case BOX :
			box(x, y, x+dvalue(), y+dvalue());
			break;
		case CIRCLE :
			circle(x, y, dvalue());
			break;
		case TEXT :
			i = dvalue();
			ptr = buffer;
			do
				*ptr++ = j = drawing[dpos++];
			while(j);
			text(buffer, x, y, i);
			break;
		case ARC:
			arc(x, y, dvalue(), dvalue(), dvalue());
			break;
		case GROUP :
			i = dvalue();
			j = dpos;
			while((dpos - j) < i)
				draw_object(x, y);
			break;
		case RCOPY :
			i = dpos - 5;
			i += dvalue();
			goto gocopy;
		case ACOPY :
			i = dvalue();
		gocopy:
			j = dpos;
			dpos = i+1;
			k = dvalue();
			l = dvalue();
			dpos = i;
			draw_object(x - k, y - l);
			dpos = j;
			break;
		default:
			message();
			printf("Corrupt drawing file!");
			zero_drawing(dpos -= 5);
			return -1; }
	--tick;
	return 0;
}


skip_object()
{
	unsigned i;

	switch(drawing[dpos++]) {
		case LINE :
		case BOX :
			dpos += 8;
			break;
		case CIRCLE :
		case ACOPY :
		case RCOPY :
			dpos += 6;
			break;
		case TEXT :
			dpos += 6;
			while(drawing[dpos++]);
			break;
		case ARC :
			dpos += 10;
			break;
		case GROUP :
			dvalue();
			dvalue();
			i = dvalue();
			dpos += i;
			break;
		default :
			message();
			printf("Corrupt drawing file!");
			zero_drawing(--dpos);
		case 0 :
			return -1; }
	return 0;
}

select_object(name)
	char *name;
{
	int x, y, i, b;
	char flag;

	flag = -1;
	for(;;) {
		if(flag) {
			message();
			printf("%s: Select object", name);
			flag = 0; }
		if((b = mouse_status()) & MOUSE_RIGHT) {
			message();
			return 0; }
		x = mousex;
		y = mousey;
		dpos = 0;
		while(drawing[i = dpos++]) {
			if((dvalue() == x) && (dvalue() == y)) {
				if(cursor_flag) {
					draw_cursor();
					cursor_flag = 0; }
				dpos = i;
				pixel = CLEAR_PIXEL;
				draw_object(0, 0);
				pixel = SET_PIXEL;
				if(wait_for_left("LEFT to accept, RIGHT to cancel")) {
					dpos = i;
					draw_object(0, 0);
					flag = -1;
					continue; }
				dpos = i;
				message();
				return -1; }
			dpos = i;
			if(skip_object())
				break; } }
}


find_vector(x, y, r, sx, sy)
	int x, y, r, sx, sy;
{
	int rs, i, j, ax, x1, y1, x2, y2, v, v1;
	unsigned d, d1;

	rs = r*r;

	d1 = -1;
	for(v=0; v < (ARC_RES*4); ++v) {
		j = (ARC_RES-1) - (i = v & (ARC_RES-1));
		switch(v & (ARC_RES*3)) {
			case ARC_RES*0 :		
				x1 = x + (ax = scale(r, sine[i], -1));
				y1 = y - sqrt(rs - (ax*ax));
				break;
			case ARC_RES*1 :		
				x1 = x + (ax = scale(r, sine[j], -1));
				y1 = y + sqrt(rs - (ax*ax));
				break;
			case ARC_RES*2 :		/*   */
				x1 = x - (ax = scale(r, sine[i], -1));
				y1 = y + sqrt(rs - (ax*ax));
				break;
			case ARC_RES*3 :		/*   */
				x1 = x - (ax = scale(r, sine[j], -1));
				y1 = y - sqrt(rs - (ax*ax)); }
		x2 = abs(x1 - sx);
		y2 = abs(y1 - sy);
		if((d = sqrt((x2*x2) + (y2*y2))) < d1) {
			v1 = v;
			d1 = d; } }
	return v1;
}


line(x1, y1, x2, y2)
	int x1, y1, x2, y2;
{
	int i, w, h;
	if((w = abs(x1 - x2)) >= (h = abs(y1 - y2))) {
		if(x1 > x2) {
			i = x1;
			x1 = x2;
			x2 = i;
			i = y1;
			y1 = y2;
			y2 = i; }
		if(y1 < y2) {
			for(i=0; i < w; ++i)
				set_pixel(x1+i, y1+scale(i, h, w)); }
		else {
			for(i=0; i < w; ++i)
				set_pixel(x1+i, y1-scale(i, h, w)); } }
	else {
		if(y1 > y2) {
			i = x1;
			x1 = x2;
			x2 = i;
			i = y1;
			y1 = y2;
			y2 = i; }
		if(x1 < x2) {
			for(i=0; i < h; ++i)
				set_pixel(x1+scale(i, w, h), y1+i); }
		else {
			for(i=0; i < h; ++i)
				set_pixel(x1-scale(i, w, h), y1+i); } }

	set_pixel(x2, y2);
}


box(x1, y1, x2, y2)
	int x1, y1, x2, y2;
{
	line(x1, y1, x2, y1);		
	line(x1, y1+1, x1, y2-1);	
	line(x2, y1+1, x2, y2-1);	
	line(x1, y2, x2, y2);		
}


circle(x, y, r)
	int x, y, r;
{
	int i, j, k, rs, lj;

	rs = (lj = r)*r;
	for(i=0; i <= r; ++i) {
		j = k = sqrt(rs - (i*i));
		do {
			set_pixel(x+i, y+j);
			set_pixel(x+i, y-j);
			set_pixel(x-i, y+j);
			set_pixel(x-i, y-j); }
		while(++j < lj);
		lj = k; }
}


arc(x, y, r, v1, v2)
	int x, y, r;
	unsigned char v1, v2;
{
	int rs, i, j, ax, x1, y1, x2, y2;

	x2 = -1;
	rs = r*r;

	do {
		j = (ARC_RES-1) - (i = v1 & (ARC_RES-1));
		switch(v1 & (ARC_RES*3)) {
			case ARC_RES*0 :	/* Quadrant one */
				x1 = x + (ax = scale(r, sine[i], -1));
				y1 = y - sqrt(rs - (ax*ax));
				break;
			case ARC_RES*1 :	/* Quadrant two */
				x1 = x + (ax = scale(r, sine[j], -1));
				y1 = y + sqrt(rs - (ax*ax));
				break;
			case ARC_RES*2 :	/* Quadrant three */
				x1 = x - (ax = scale(r, sine[i], -1));
				y1 = y + sqrt(rs - (ax*ax));
				break;
			case ARC_RES*3 :	/* Quadrant four */
				x1 = x - (ax = scale(r, sine[j], -1));
				y1 = y - sqrt(rs - (ax*ax)); }
		if(x2 != -1)
			line(x2, y2, x1, y1);
		x2 = x1;
		y2 = y1; }
	while(v1++ != v2);
}


text(string, x, y, s)
	char *string;
	int x, y, s;
{
	unsigned i, j, b;
	unsigned char *ptr;

	y -= scale(24, s, 100);
	while(*string) {
		ptr = &font[(*string++ - ' ') * 48];

		for(i=0; i < 24; ++i) {
			b = (*ptr++ << 8) | *ptr++;
			for(j=0; j < 16; ++j) {
				if(b & 0x8000)
					set_pixel(x+scale(j,s,100), y+scale(i,s,100));
				b <<= 1; } }
		x += scale(18, s, 100); }
}

message()
{
	int i;
	gotoxy(0, 0);
	for(i=0; i < 80; ++i)
		putc(' ', stdout);
	gotoxy(0, 0);
}


wait_for_left(prompt)
	char *prompt;
{
	int s;
	message();
	printf(prompt);
	while(!((s = mouse_status()) & MOUSE_LEFT)) {
		if(s & MOUSE_RIGHT) {
			message();
			return -1; } }
	return 0;
}


draw(value)
	unsigned value;
{
	drawing[dtop++] = value >> 8;
	drawing[dtop++] = value & 255;
}


dvalue()
{
	return (drawing[dpos++] << 8) | drawing[dpos++];
}


zero_drawing(top)
	unsigned top;
{
	dtop = top;
	while(top < sizeof(drawing))
		drawing[top++] = 0;
}

get_value(prompt)
	char *prompt;
{
	unsigned value;
	char buffer[51], *ptr;

	message();
	printf(prompt);
	fgets(ptr = buffer, sizeof(buffer)-1, stdin);
	while(isspace(*ptr))
		++ptr;
	value = 0;
	while(isdigit(*ptr))
		value = (value*10) + (*ptr++ - '0');
	message();
	return value;
}


FILE *get_file(prompt, name, ext, mode)
	char *prompt, *name, *ext, *mode;
{
	int i, dot;
	char buffer[65], *ptr;

	message();
	printf("Enter %s filename (%s)?", prompt, name);
	fgets(ptr = buffer, sizeof(buffer)-1, stdin);
	while(isspace(*ptr))
		++ptr;
	if(*ptr) {
		dot = -1;
		for(i = 0; *ptr; ++i)
			if((name[i] = *ptr++) == '.')
				dot = i;
		name[i] = 0;
		if(dot == -1)
			while(name[i++] = *ext++); }
	message();
	return fopen(name, mode);
}


scale(int value, unsigned mul, int div)
{
	 asm	MOV		AX,8[BP]	
	 asm	MUL		WORD PTR 6[BP]	
	 asm	MOV		BX,4[BP]	
	 asm	DIV		BX		
	 asm	SHR		BX,1		
	 asm	JZ		scale1		
	 asm	INC		DX		
	 asm	SUB		BX,DX		
	 asm	ADC		AX,0		
scale1:
}

init_video()
{

	 asm	MOV		AH,0Fh			
	 asm	INT		10h				
	 asm	MOV		DGRP:_vmode,AL	

	 asm	MOV		AX,1A00h		
	 asm	INT		10h			
	 asm	CMP		AL,1Ah			
	 asm	MOV		AL,-1			
	 asm	JZ		initv1			
	 asm	XOR		AX,AX	
initv1:		
}

video_mode(int mode)
{
	 asm	MOV		AL,4[BP]		
	 asm	XOR		AH,AH			
	 asm	INT		10h			
}


init_mouse()
{
	 asm	XOR		AX,AX			
	 asm	INT		33h				
	 asm	AND		AX,AX			
	 asm	JZ		initm1			

	 asm	XOR		CX,CX			
	 asm	MOV		DX,639			
	 asm	MOV		AX,7			
	 asm	INT		33h				
	 asm	MOV		DX,479			
	 asm	MOV		AX,8			
	 asm	INT		33h				
	 asm	MOV		AX,-1			
initm1:
}


set_pixel(int x, int y)
{
	 asm	MOV		DX,4[BP]		
	 asm	CMP		DX,VERTICAL		
	 asm	JAE		noset			
	 asm	MOV		CX,6[BP]		
	 asm	CMP		CX,HORIZONTAL	
	 asm	JAE		noset			
	 asm	MOV		AH,0Ch			
	 asm	MOV		AL,DGRP:_pixel	
	 asm	XOR		BH,BH			
	 asm	INT		10h				
noset:
}


gotoxy(x, y)
{
	 asm	MOV		DH,4[BP]		
	 asm	MOV		DL,6[BP]		
	 asm	XOR		BH,BH			
	 asm	MOV		AH,02h			
	 asm	INT		10h				
}

test_key()
{
	 asm	MOV		AH,01h			
	 asm	INT		16h				
	 asm	JNZ		getk1			
	 asm	XOR		AX,AX	
	 asm    JMP		endp:
	 getk1:
	 asm	 		_get_key
	 endp:
	 
	 
	 
}


get_key()
{
getk1:	asm 	XOR		AH,AH			
	asm	INT		16h				
	asm 	XOR		AH,AH			
}


mouse_status()
{
	int x, y, z;

	if(!cursor_flag) {
newcursor:
		draw_cursor();
		cursor_flag = -1; }
	asm {
		MOV		AX,0003h	
		INT		33h			
		MOV		-2[BP],BX	
		MOV		-4[BP],DX	
		MOV		-6[BP],CX	
		}

	if(snap) {
		x = (x / snap) * snap;
		y = (y / snap) * snap; }

	if((x != mousex) || (y != mousey)) {
		draw_cursor();
		gotoxy(68, 0);
		printf("X=%-3d Y=%-3d", (mousex = x) - xbase, (mousey = y) - ybase);
		goto newcursor; }

	
	if(z & (MOUSE_LEFT|MOUSE_RIGHT|MOUSE_CENTER)) {
	mloop1:		asm {
			
					MOV		AX,0003h		
					INT		33h				
					AND		BL,07h			
					JNZ		mloop1			
			}
		draw_cursor();
		cursor_flag = 0; }

	/* Pass back button status to caller */
	return z;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新热久久免费视频| 2021中文字幕一区亚洲| 国产精品69毛片高清亚洲| 三级久久三级久久久| 亚洲成人激情av| 亚洲成人激情av| 日韩精品五月天| 久久成人免费网站| 国产一区二区调教| 成人免费视频视频| 95精品视频在线| 欧美亚洲尤物久久| 91精品一区二区三区久久久久久| 欧美揉bbbbb揉bbbbb| 欧美高清你懂得| 精品sm捆绑视频| 欧美激情在线观看视频免费| 中文字幕中文在线不卡住| 一区二区三区在线观看国产| 丝袜国产日韩另类美女| 美腿丝袜在线亚洲一区| 久久99久久99小草精品免视看| 韩国成人福利片在线播放| 国产精品一区二区免费不卡 | 91视频.com| 欧美性猛片aaaaaaa做受| 欧美一级理论片| 日本一区二区久久| 夜夜嗨av一区二区三区网页| 精品一区二区三区av| aaa亚洲精品| 欧美一级高清大全免费观看| 欧美日韩综合在线| 久久精品亚洲精品国产欧美 | 日韩精品综合一本久道在线视频| 日韩欧美久久久| 中文字幕日韩av资源站| 日韩精品成人一区二区在线| 风间由美性色一区二区三区| 69堂成人精品免费视频| 中文字幕乱码久久午夜不卡| 亚洲va中文字幕| 成人黄色免费短视频| 91精品福利在线一区二区三区| 中文欧美字幕免费| 奇米精品一区二区三区在线观看| av一区二区三区四区| 日韩视频在线永久播放| 亚洲精品va在线观看| 国产一区二区三区观看| 欧美日韩精品一区二区三区| 国产精品麻豆视频| 麻豆精品一区二区综合av| 在线观看中文字幕不卡| 国产精品久久久一本精品| 美女网站一区二区| 欧美日韩精品福利| 亚洲三级视频在线观看| 国产成人综合在线播放| 3atv在线一区二区三区| 日韩伦理电影网| 成人免费视频一区二区| 国产欧美精品一区二区色综合朱莉| 舔着乳尖日韩一区| 欧美在线播放高清精品| 一区二区免费视频| 色综合视频一区二区三区高清| 国产精品免费av| 国产成人精品三级麻豆| 2017欧美狠狠色| 久久国产日韩欧美精品| 日韩亚洲欧美成人一区| 婷婷综合另类小说色区| 欧美男男青年gay1069videost | 天天操天天综合网| 欧美日韩一区二区在线观看视频 | 国产一区在线精品| 26uuu国产日韩综合| 久久丁香综合五月国产三级网站| 日韩区在线观看| 日本欧洲一区二区| 日韩美一区二区三区| 麻豆精品一区二区综合av| 欧美大肚乱孕交hd孕妇| 蜜臀av在线播放一区二区三区| 日韩欧美亚洲一区二区| 久久爱另类一区二区小说| 精品少妇一区二区三区日产乱码| 蜜乳av一区二区三区| 国产亚洲自拍一区| 不卡视频在线观看| 一区二区三区免费| 91精品国产丝袜白色高跟鞋| 精品在线亚洲视频| 日本一区二区久久| 91美女片黄在线| 天天做天天摸天天爽国产一区| 日韩欧美国产电影| 成人午夜激情在线| 亚洲综合久久av| 日韩一区二区三区四区五区六区| 激情欧美日韩一区二区| 国产精品欧美极品| 欧美性猛交xxxx乱大交退制版| 亚洲va在线va天堂| 国产色一区二区| 色综合久久综合网97色综合| 日韩成人一区二区| 中文字幕在线视频一区| 精品视频免费在线| 国产乱对白刺激视频不卡| 亚洲欧美日韩在线| 日韩欧美中文字幕一区| 97久久人人超碰| 老司机精品视频线观看86 | 在线精品视频免费播放| 裸体一区二区三区| 中文字幕日本不卡| 欧美tickle裸体挠脚心vk| 色综合天天在线| 久久er99热精品一区二区| 一区二区三区在线免费观看| 久久久久久免费网| 欧美日韩视频在线一区二区| 国产盗摄精品一区二区三区在线| 午夜电影网亚洲视频| 国产精品欧美一区喷水| 欧美一级片在线| 欧美日免费三级在线| 99热99精品| 国产麻豆91精品| 麻豆精品精品国产自在97香蕉| 亚洲精品成人天堂一二三| 欧美韩日一区二区三区四区| 亚洲国产综合在线| 国产精品情趣视频| 欧美韩国日本一区| 国产丝袜欧美中文另类| 日韩精品自拍偷拍| 欧美日韩高清一区二区| 在线观看亚洲精品视频| www.视频一区| 风间由美性色一区二区三区| 国产又粗又猛又爽又黄91精品| 免费成人结看片| 麻豆精品一区二区av白丝在线| 丝瓜av网站精品一区二区| 一区二区三区美女| 一区二区三区在线观看视频| 亚洲色图视频网| 亚洲色图在线视频| 亚洲人快播电影网| 亚洲精品日韩综合观看成人91| 成人欧美一区二区三区小说| 国产精品国产三级国产普通话蜜臀| 国产拍欧美日韩视频二区| 日韩精品乱码免费| 免费久久精品视频| 久草中文综合在线| 国产精品综合二区| 高清免费成人av| 99久久精品99国产精品| 色综合久久88色综合天天6| 99久久久国产精品| 97se亚洲国产综合自在线| 一本在线高清不卡dvd| 91国模大尺度私拍在线视频| 精品视频资源站| 日韩一二在线观看| 欧美国产禁国产网站cc| 亚洲色图视频免费播放| 同产精品九九九| 国产一区二区电影| eeuss鲁一区二区三区| 91官网在线免费观看| 日韩一区二区三区精品视频 | 亚洲欧美日韩一区二区 | 99精品视频在线播放观看| 在线中文字幕一区二区| 欧美精品 日韩| 久久影音资源网| 亚洲精品亚洲人成人网 | 国产欧美一区二区精品久导航| 亚洲国产精品激情在线观看| 亚洲另类色综合网站| 久久国产欧美日韩精品| www.欧美.com| 欧美一区二区三区在线看| 亚洲国产高清不卡| 亚洲成人免费视| 国产成人在线视频播放| 欧美日韩在线播放一区| 久久无码av三级| 亚洲大片精品永久免费| 国产精品自产自拍| 色婷婷久久99综合精品jk白丝| 日韩免费福利电影在线观看| 一区二区三区欧美激情| 国产大陆精品国产| 日韩色在线观看|