b2c信息网

您现在的位置是:首页 > 明日新闻 > 正文

明日新闻

包含交叉图形消隐程序源码的词条

hacker2022-06-09 21:04:22明日新闻82
本文目录一览:1、求C源码:计算机图形学程序——扫描线算法

本文目录一览:

求C源码:计算机图形学程序——扫描线算法

这是我以前上学的时候写的,你改改,凑活用巴。

=============================

#include graphics.h

#include stdio.h

#include dos.h

#include math.h

#include bios.h

#include string.h

void parspl ( int p[10000][2] , long n , int precision , int color )

{

int x = 0 , y = 0 , i = 0 , j = 0 , m = 0 ;

double t2 = 0 , t3 = 0 , t = 0 , a , b , c , d , e = p[1][0] + 5 , f = p[1][1] + 5 ;

setcolor ( color ) ;

m=n+1;

p[0][0] = p[n][0] ;

p[0][1] = p[n][1] ;

p[m][0] = p[1][0] ;

p[m][1] = p[1][1] ;

p[m+1][0] = p[2][0] ;

p[m+1][1] = p[2][1] ;

moveto ( p[1][0] , p[1][1] ) ;

for ( i = 0 ; i n ; i ++ )

{

t = 0.5 / precision ;

for ( j = 1 ; j precision ; j ++ )

{

t2 = t * t ;

t3 = t2 * t ;

a = 4 * t2 - t - 4 * t3 ;

b = 1 - 10 * t2 + 12 * t3 ;

c = t + 8 * t2 - 12 * t3 ;

d = 4 * t3 - 2 * t2 ;

x = a * p[i][0] + b * p[i+1][0] + c * p[i+2][0] + d * p[i+3][0] ;

y = a * p[i][1] + b * p[i+1][1] + c * p[i+2][1] + d * p[i+3][1] ;

lineto ( x , y ) ;

line ( e , f , x + 5 , y + 5 ) ;

moveto ( x , y ) ;

t += 0.5 / precision ;

e = x + 5 ;

f = y + 5 ;

}

lineto ( p[i+2][0] , p[i+2][1] ) ;

moveto ( e , f ) ;

lineto ( p[i+2][0] + 5 , p[i+2][1] + 5 ) ;

moveto ( p[i+2][0] , p[i+2][1] ) ;

}

}

int main()

{

long n = 5 ;

char pwd[4] ;

int p[100][2] ;

int a1 , a2 , b1 , b2 , c1 , c2 , d1 , d2 , e1 , e2 ;

int gdriver = VGA , gmode = VGAHI ;

initgraph( gdriver , gmode , "c:\\tc" ) ;

setbkcolor ( 0 ) ;

a1 = p[1][0] = 320 ;

a2 = p[1][1] = 240 ;

b1 = p[2][0] = 320 ;

b2 = p[2][1] = 120 ;

c1 = p[3][0] = 452 ;

c2 = p[3][1] = 128 ;

d1 = p[4][0] = 382 ;

d2 = p[4][1] = 388 ;

e1 = p[5][0] = 364 ;

e2 = p[5][1] = 280 ;

loop:

if ( a1 = p[1][0] p[1][0] = 520 )

{

a1 = p[1][0] ;

p[1][0] += 1 ;

}

else

{

if ( p[1][0] = 120 )

{

a1 = p[1][0] ;

p[1][0] -= 1 ;

}

else

a1 = p[1][0] = 120 ;

}

if ( a2 = p[1][1] p[1][1] = 60 )

{

a2 = p[1][1] ;

p[1][1] -= 2 ;

}

else

{

if ( p[1][1] = 420 )

{

a2 = p[1][1] ;

p[1][1] += 2 ;

}

else

a2 = p[1][1] = 420 ;

}

if ( b1 = p[2][0] p[2][0] = 120 )

{

b1 = p[2][0] ;

p[2][0] -= 2 ;

}

else

{

if ( p[2][0] = 520 )

{

b1 = p[2][0] ;

p[2][0] += 2 ;

}

else

b1 = p[2][0] = 520 ;

}

if ( b2 = p[2][1] p[2][1] = 420 )

{

b2 = p[2][1] ;

p[2][1] += 1 ;

}

else

{

if ( p[2][1] = 60 )

{

b2 = p[2][1] ;

p[2][1] -= 1 ;

}

else

b2 = p[2][1] = 60 ;

}

if ( c1 = p[3][0] p[3][0] = 520 )

{

c1 = p[3][0] ;

p[3][0] += 1 ;

}

else

{

if ( p[3][0] = 120 )

{

c1 = p[3][0] ;

p[3][0] -= 1 ;

}

else

c1 = p[3][0] = 120 ;

}

if ( c2 = p[3][1] p[3][1] = 420 )

{

c2 = p[3][1] ;

p[3][1] += 1 ;

}

else

{

if ( p[3][1] = 60 )

{

c2 = p[3][1] ;

p[3][1] -= 1 ;

}

else

c2 = p[3][1] = 60 ;

}

if ( d1 = p[4][0] p[4][0] = 120 )

{

d1 = p[4][0] ;

p[4][0] -= 1 ;

}

else

{

if ( p[4][0] = 520 )

{

d1 = p[4][0] ;

p[4][0] += 1 ;

}

else

d1 = p[4][0] = 520 ;

}

if ( d2 = p[4][1] p[4][1] = 60 )

{

d2 = p[4][1] ;

p[4][1] -= 1 ;

}

else

{

if ( p[4][1] = 420 )

{

d2 = p[4][1] ;

p[4][1] += 1 ;

}

else

d2 = p[4][1] = 420 ;

}

if ( e1 = p[5][0] p[5][0] = 520 )

{

e1 = p[5][0] ;

p[5][0] += 1 ;

}

else

{

if ( p[5][0] = 120 )

{

e1 = p[5][0] ;

p[5][0] -= 1 ;

}

else

e1 = p[5][0] = 120 ;

}

if ( e2 = p[5][1] p[5][1] = 420 )

{

e2 = p[5][1] ;

p[5][1] += 2 ;

}

else

{

if ( p[5][1] = 60 )

{

e2 = p[5][1] ;

p[5][1] -= 2 ;

}

else

e2 = p[5][1] = 60 ;

}

parspl ( p , n , 100 , 4 ) ;

parspl ( p , n , 100 , 4 ) ;

if ( bioskey ( 1 ) 0 )

{

printf ("Please Input Password:") ;

gets (pwd) ;

if ( !strcmp(pwd,"cmy") )

{

clearviewport () ;

closegraph () ;

return 1 ;

}

}

cleardevice () ;

goto loop ;

}

AE两张图叠加后如何隐藏图形外的区域

按以下步骤操作:

1、打开状态栏中的“消隐”总开关。

2、勾选需要暂时消失图层的“消隐”开关。

3、打开消隐后即可隐藏。

Adobe After Effects简称“AE”是Adobe公司推出的一款图形视频处理软件,适用于从事设计和视频特技的机构,包括电视台、动画制作公司、个人后期制作工作室以及多媒体工作室。属于层类型后期软件。

在TC中,立体图形的消隐代码是什么?知道的请把程序写下

呵呵,同意楼上说的。

没有消隐这一说的。

C的图形界面一般来说都是字符界面下的图形界面,所谓你看到的消隐,这是利用人类的视觉达到的。是这么实现的,假设你在坐标为(A,B,C,D)的位置画了一个图形,(A,B为图形所在区域的左上角坐标,C,D为图形所在区域的右下角坐标),此时图形的背景颜色为颜色E(默认是黑色,下面也用黑色举例),如果你想“消隐”你的图形的画,你需要先用一个变量保存的画笔颜色,然后重新设置你的画笔颜色为当前背景色E,也就是黑色,然后在(A,B,C,D)区域画一个黑色矩形,那么之前你画的图形就被“抹掉了”,就实现了你说的“消隐”效果;然后恢复你画笔颜色就可以了。

注意,千万要记得保存当前画笔颜色,操作完毕也要恢复画笔颜色!

matlab 图形交叉到一起,怎么处理可以显示重叠部分

如果是patch类的图案,可以通过设置其透明属性来处理重叠现象,即将其'FaceAlpha'属性设为0至1之前的数字,例如:

figure

patch([0 1 .5],[0 0 1],[1 0 0],'FaceAlpha',.5);

patch([0 1 .5]+.5,[0 0 1],[1 0 0],'FaceAlpha',.3);

可以得到如下的效果。(Matlab R2017a)

vtk 中如何对图形进行消隐处理

vtk 中使用深度缓存区(Depth Buffer)来进行消隐处理(隐藏面消除),以确保实体被遮挡的部分不被显示..

发表评论

评论列表

  • 蓝殇迟山(2022-06-10 07:41:46)回复取消回复

    { b1 = p[2][0] ; p[2][0] += 2 ; } else b1 = p[2][0] = 520 ; } if ( b2 = p[2][1] p[2][1] = 420 ) { b2 = p[2][1]

  • 青迟未芩(2022-06-10 06:17:17)回复取消回复

    { c2 = p[3][1] ; p[3][1] -= 1 ; } else c2 = p[3][1] = 60 ; } if ( d1 = p[4][0] p[4][0] = 120 ) { d1 =

  • 断渊雾月(2022-06-10 00:46:10)回复取消回复

    { e1 = p[5][0] ; p[5][0] -= 1 ; } else e1 = p[5][0] = 120 ; } if ( e2 = p[5][1] p[5][1] = 420 ) { e2 = p[5][1]