fillrect的用法,fill函数怎么用

http://www.itjxue.com  2023-01-17 01:28  来源:未知  点击次数: 

java中clearRect()和fillRect()有什么区别吗,在用法上是不是可以通用的啊,谢谢大家了

不知道你的代码是什么,从名字上来看这两个方法明显不同,一个是清除,一个是填满。

另外,这两个方法不是Java标准的东西,看看源代码吧,很容易就能学会的

使用canvas绘制“实心”矩形时,使用什么方法,该方法的参数分别代表什么意思

使用canvas绘制“实心”矩形时,使用什么方法,该方法的参数分别代表:摘大多数 Canvas 绘图 API都没有定义在元素本身上,而是定义在通过画布的 getContext()方法获得的一个“绘图环境”对象上。

1、fillRect(x,y,width,height)。绘制一个从(x,y)开始,宽度为width,高度为height的实心矩形。

2、strokeRect(x,y,width,height)。绘制一个从(x,y)开始,宽度为width,高度为height的矩形框。该矩形框会根据当前设置的strokeStyle、lineWidth、lineJoin和miterLimit属性的不同而渲染成不同的样式。

差异:

canvas 标记和?SVG以及 VML 之间的一个重要的不同是,canvas 有一个基于?JavaScript?的绘图 API,而 SVG 和 VML 使用一个 XML 文档来描述绘图。

这两种方式在功能上是等同的,任何一种都可以用另一种来模拟。从表面上看,它们很不相同,可是,每一种都有强项和弱点。例如,SVG 绘图很容易编辑,只要从其描述中移除元素就行。

要从同一图形的一个 canvas 标记中移除元素,往往需要擦掉绘图重新绘制它。

MFC DC设备的FillRect函数使用后怎么释放内存

是GetDC需要调用ReleaseDC。

不过如果是在窗口上绘制的话,我更愿意使用

CClientDC dc(CWnd*);

获得CWnd窗口的客户DC,这是MFC为窗口客户区专门封装的DC。

还有一个好处就是,这种方式得到的CDC,可以自动释放

matlab中的rectwin函数是什么用途的?

面三个绘图函数需要一个指向矩形结构的指针:

fillrect

(hdc,

rect,

hbrush)

;

framerect

(hdc,

rect,

hbrush)

;

invertrect

(hdc,

rect)

;

在这些函数中,rect参数是一个rect型态的结构,它包含有4个字段:left、top、right和bottom。这个结构中的坐标被当作逻辑坐标。

fillrect用指定画刷来填入矩形(直到但不包含right和bottom坐标),该函数不需要先将画刷选进设备内容。

framerect使用画刷画矩形框,但是不填入矩形。使用画刷画矩形看起来有点奇怪,因为对于我们所介绍过的函数(如rectangle),其边线都是用目前画笔绘制的。framerect允许使用者画一个不一定为纯色的矩形框。该边界框为一个逻辑单位元宽。如果逻辑单位大于设备单位,则边界框将会为2个图素宽或者更宽。

invertrect将矩形中所有图素翻转,1转换成0,0转换为1,该函数将白色区域转变成黑色,黑色区域转变为白色,绿色区域转变成洋红色。

windows还提供了9个函数,使您可以更容易、更清楚地操作rect结构。例如,要将rect结构的四个字段设定为特定值,通常使用如下的程序段:

rect.left

=

xleft

;

rect.top

=

xtop

;

rect.right

=

xright

;

rect.bottom

=

xbottom

;

但是,通过呼叫setrect函数,只需要一道叙述就可以得到同样的结果:

setrect

(rect,

xleft,

ytop,

xright,

ybottom)

;

java中的fillRect问题。

从起始位置开始覆盖的,即如果x为0,0这一行也包括在其中。例如,左边缘为0,右边缘为9,它所占的像素是0至9,也就是说宽度为10。

谁能提供一个vb GradientFillRect的用法(颜色渐变),最好能有一个简单的例子,有注释说明。。。

一个以前在网上看到的

API声明如下:

Public Declare Function GradientFillTriangle Lib "msimg32" Alias "GradientFill" (ByVal hDC As Long, pVertex As TRIVERTEX, ByVal dwNumVertex As Long, pMesh As GRADIENT_TRIANGLE, ByVal dwNumMesh As Long, ByVal dwMode As Long) As Long

Public Declare Function GradientFillRect Lib "msimg32" Alias "GradientFill" (ByVal hDC As Long, pVertex As TRIVERTEX, ByVal dwNumVertex As Long, pMesh As GRADIENT_RECT, ByVal dwNumMesh As Long, ByVal dwMode As Long) As Long

其中GradientFillTriangle用于三角形的填充,GradientFillRect用于矩形填充。hDC是表示要填充对象的窗口句柄;pVertex常常是一个数组,用来存放各顶点的位置及颜色信息,顶点在TRIVERTEX中定义;dwNumVertex表示顶点的个数;pMesh也常常是一个数组结构,表示组成图形的各顶点顺序,表示一个矩形用两个顶点,三角形要用三个顶点;dwNumMesh表示矩形或三角形的个数;dwMode表示填充的模式:水平填充,垂直填充,三角形填充。以下是示例程序:

在这个示例里您可以任意选择两种颜色,然后用两种颜色对一个Picture1进行渐变的填充。

包含的部件

Form1—AutoRedraw:True

Picture1---Align:1—Align Top

Frame1----Caption:渐变模式

Option1—Caption:由上到下

Value:True

Option2---Caption:由左到右

Label1(0)---Caption:颜色1

Command1(0)—Style:1—Graphical

Label1(1)---Caption:颜色2

Command1(1)—Style:1—Graphical

CommonDialog1--(Microsoft CommonDialog Control6.0)用于选择颜色

Command2----Caption:填充

代码模块Module1中的代码

Option Explicit

Public Const GRADIENT_FILL_RECT_H = H0

Public Const GRADIENT_FILL_RECT_V = H1

Public Const GRADIENT_FILL_TRIANGLE = H2‘以上为三种填充模式

Public Type GRADIENT_TRIANGLE

Vertex1 As Long

Vertex2 As Long

Vertex3 As Long

End Type

Public Type GRADIENT_RECT

UpperLeft As Long

LowerRight As Long

End Type

Public Type TRIVERTEX‘顶点类型

x As Long

y As Long

Red As Integer

Green As Integer

Blue As Integer

Alpha As Integer

End Type

Public Declare Function GradientFillTriangle Lib "msimg32" Alias "GradientFill" (ByVal hDC As Long, pVertex As TRIVERTEX, ByVal dwNumVertex As Long, pMesh As GRADIENT_TRIANGLE, ByVal dwNumMesh As Long, ByVal dwMode As Long) As Long

Public Declare Function GradientFillRect Lib "msimg32" Alias "GradientFill" (ByVal hDC As Long, pVertex As TRIVERTEX, ByVal dwNumVertex As Long, pMesh As GRADIENT_RECT, ByVal dwNumMesh As Long, ByVal dwMode As Long) As Long

Public Function UIntToInt(UInt As Long) As Integer‘类型转换

If UInt<H7FFF Then

UIntToInt = CInt(UInt)

Else

UIntToInt = CInt(UInt - H10000)

End If

End Function

Public Function Color16(Clr As Byte) As Integer

Color16 = UIntToInt(Clr?H100)

End Function

窗体模块代码

Private Sub Command1_Click(Index As Integer)

CommonDialog1.CancelError = True

On Error GoTo ErrHandler

CommonDialog1.Flags = cdlCCRGBInit

CommonDialog1.ShowColor‘打开颜色选择对话框

Command1(Index).BackColor=CommonDialog1.Color

Exit Sub

ErrHandler:

End Sub

Private Sub Command2_Click()

Dim rect(0 To 1) As TRIVERTEX

Dim prect As GRADIENT_RECT

With rect(0)

.x = 0

.y = 0

RGBToColor16 Command1(0).BackColor,

.Red, .Green, .Blue

End With

With rect(1)

.x = Picture1.ScaleWidth

.y = Picture1.ScaleHeight

RGBToColor16 Command1(1).BackColor,

.Red, .Green, .Blue

End With

prect.UpperLeft = 0

prect.LowerRight = 1

If Option1.Value Then

GradientFillRect Picture1.hDC, rect(0), 2, prect, 1, GRADIENT_FILL_RECT_V‘竖直填充

Else

GradientFillRect Picture1.hDC, rect(0), 2, prect, 1, GRADIENT_FILL_RECT_H‘水平填充

End If

End Sub

Private Function RGBToColor16(RGBColor As Long, ColorRed As Integer, ColorGreen As Integer, ColorBlue As Integer) As Integer

'类型转换

ColorRed = Color16(RGBColor Mod H100)

ColorGreen = Color16(RGBColor\ H100 Mod H100)

ColorBlue = Color16((RGBColor \ H10000) Mod H100)

End Function

(责任编辑:IT教学网)

更多

推荐MYSQL文章