失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言滚动字幕的原理编程 c#中通过Graphics.DrawString实现滚动字幕的原理和代码实例...

c语言滚动字幕的原理编程 c#中通过Graphics.DrawString实现滚动字幕的原理和代码实例...

时间:2023-09-04 09:29:41

相关推荐

c语言滚动字幕的原理编程 c#中通过Graphics.DrawString实现滚动字幕的原理和代码实例...

c#中通过Graphics.DrawString实现滚动字幕的原理和代码实例

在c#中其实滚动屏幕的实现很简单,只需要用到Graphics.DrawString方法. Graphics.DrawString (String s, Font font, Brush brush, PointF point) 在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。s 要绘制的字符串。

font 它定义字符串的文本格式。

brush 它确定所绘制文本的颜色和纹理。

point 结构,它指定所绘制文本的左上角。

其中,我们要用到的就是point函数,通过控制它的X或Y参数来控制文字的偏移量.下面以水平滚动字幕为例.

privateLabellabel=newLabel();

publicstringtext="csdnbaihe_591";

privatevoidFrmShow_Load(objectsender,EventArgse)

{

this.label.Location=newPoint(149,13);

this.label.Size=newSize(134,16);

this.Controls.Add(label);

this.label.Text="";

this.timer1.Enabled=true;

this.timer1.Interval=500;

p=newPointF(this.label.Size.Width,0);

}

PointFp;

Fontf=newFont("宋体",10);

Colorc=Color.White;

stringtemp;

privatevoidtimer1_Tick(objectsender,EventArgse)

{

Graphicsg=this.label.CreateGraphics();

SizeFs=newSizeF();

s=g.MeasureString(text,f);//测量文字长度

Brushbrush=Brushes.Black;

g.Clear(c);//清除背景

if(temp!=text)//文字改变时,重新显示

{

p=newPointF(this.label.Size.Width,0);

temp=text;

}

else

p=newPointF(p.X-10,0);//每次偏移10

if(p.X<=-s.Width)

p=newPointF(this.label.Size.Width,0);

g.DrawString(text,f,brush,p);

}

C语言知识拓展:

一个C语言冒泡排序法的简单程序

main()

{

int i,j,temp;

int a[10];

for(i=0;i<10;i++)

scanf ("%d,",&a[i]);

for(j=0;j<=9;j++)

{ for (i=0;i<10-j;i++)

if (a[i]>a[i+1])

{ temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;}

}

for(i=1;i<11;i++)

printf("%5d,",a[i] );

printf("\n");

}

--------------

冒泡算法

冒泡排序的算法分析与改进

交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。

应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。

冒泡排序

1、排序方法

将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。

(1)初始

R[1..n]为无序区。

(2)第一趟扫描

从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key

第一趟扫描完毕时,"最轻"的气泡就飘浮到该区间的顶部,即关键字最小的记录被放在最高位置R[1]上。

(3)第二趟扫描

扫描R[2..n]。扫描完毕时,"次轻"的气泡飘浮到R[2]的位置上……

最后,经过n-1 趟扫描可得到有序区R[1..n]

注意:

第i趟扫描时,R[1..i-1]和R[i..n]分别为当前的有序区和无序区。扫描仍是从无序区底部向上直至该区顶部。扫描完毕时,该区中最轻气泡飘浮到顶部位置R上,结果是R[1..i]变为新的有序区。

2、冒泡排序过程示例

对关键字序列为49 38 65 97 76 13 27 49的文件进行冒泡排序的过程

3、排序算法

(1)分析

因为每一趟排序都使有序区增加了一个气泡,在经过n-1趟排序之后,有序区中就有n-1个气泡,而无序区中气泡的重量总是大于等于有序区中气泡的重量,所以整个冒泡排序过程至多需要进行n-1趟排序。

若在某一趟排序中未发现气泡位置的交换,则说明待排序的无序区中所有气泡均满足轻者在上,重者在下的原则,因此,冒泡排序过程可在此趟排序后终止。为此,在下面给出的算法中,引入一个布尔量exchange,在每趟排序开始前,先将其置为FALSE。若排序过程中发生了交换,则将其置为TRUE。各趟排序结束时检查exchange,若未曾发生过交换则终止算法,不再进行下一趟排序。

(2)具体算法

void BubbleSort(SeqList R)

{ //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序

/article/1020/25814.true/article/1020/25814.htmlTechArticlec# 滚动字幕的实现, 在c#中其实滚动屏幕的实现很简单,只需要用到Graphics.DrawString方法. Graphics.DrawString (String s, Font font, Brush brush, PointF point) 在指定位置并且用指定的 Brush 和 Font 对象绘...

如果觉得《c语言滚动字幕的原理编程 c#中通过Graphics.DrawString实现滚动字幕的原理和代码实例...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。