以前没有使用过translate(int x, int y)函数,新项目使用后,明白了使用原理
translate(int x, int y)
Translates the origin of the graphics context to the
point (x, y) in the current coordinate system.
就是把绘制区的x,y点坐标定义为坐标系的原点
比如之前绘制
g.drawImage(img,x,y,0);
等价于
g.translate(x,y);
g.drawImage(img,0,0,0);
转变之后其他对Graphics的操作,也依赖于新的坐标系
比如
g.setClip(x,y,w,h);
等价于
g.translate(x,y);
g.setClip(0,0,w,h);
因此
g.setClip(x,y,w,h);
g.drawImage(img,x,y,0);
等价于
g.translate(x,y);
g.setClip(0,0,w,h);
g.drawImage(img,0,0,0);
基于translate函数的作用,就可以把Grphics绘制的一些功能,交给别人去做,提供一些方法或者接口,快速开发UI,
比如可以建立一个setX,setY之类的函数,对translate函数的参数进行操作,从而影响到Graphis的绘制位置及绘制区域,不过记得在使用完毕后,translate回来,使坐标系回归正常
分享到:
相关推荐
int newY = (int)((imagePosition.X - pivot.X) * sinValue + (imagePosition.Y - pivot.Y) * cosValue) + pivot.Y; // 更新图像位置 imagePosition = new Point(newX, newY); } ``` 最后是缩放(Scaling),这...
- `translate(int x, int y)`方法允许我们将图形坐标系平移x个单位水平方向和y个单位垂直方向。这实际上不会改变图形本身,而是改变了绘制它们的位置。 2. **图形旋转**: - `rotate(int angle)`方法用于旋转当前...
给定一系列数据点 \({(x_n, y_n) | n = 0, 1, 2, …, N}\),目标是找到一个插值函数 \(P_n(x)\),使得该函数能够准确地通过这些数据点。具体来说,需要编写程序实现以下三个算法: 1. **拉格朗日插值**:利用...
这段代码中,我们首先计算了抛物线的顶点坐标,然后根据窗体的尺寸定义了x轴和y轴的坐标范围,并创建了一个坐标变换矩阵,使得pictureBox内部的像素坐标对应到实际的x、y轴值。接着,我们遍历x轴上的每个点,计算...
int x, y; // 构造函数,getters, setters等... public void draw(Graphics2D g2d) { // 绘制节点... for (TreeNode child : children) { // 计算子节点的相对位置... child.draw(g2d.translate(x, y)); //...
graphics.FillEllipse(Brushes.Gray, x, y, 1, 1); } ``` 最后,为了防止验证码被机器识别,我们还可以添加其他复杂性,如扭曲、倾斜、划痕等效果。这些可以通过改变`DrawString`时的坐标或者对图像进行扭曲变换...
matrixNow.Translate(ptf.X, ptf.Y); matrixNow.Scale(1, 1); matrixNow.Rotate((REAL)(nEscapeMent / 10)); matrixNow.Translate(-ptf.X, -ptf.Y); myGraphics.SetTransform( ``` 上述代码段展示了如何在...
- 定义平移量dx和dy,表示图像在x轴和y轴上的偏移距离。 - 修改CImage对象中的每个像素位置,将其坐标加上偏移量。 - 使用CDC类的Draw碘图函数在指定位置绘制平移后的图像。 2. 使用GDI+: - 加载图像到Bitmap...
int x, y; // 用户点击的屏幕坐标 GL.MatrixMode(MatrixMode.Modelview); GL.LoadIdentity(); GL.PickMatrix(x, height - y, 1, 1, GL.Viewport()); ``` 3. 绘制物体并获取拾取信息: ```csharp foreach (var ...
例如,可以设置一个小的负x和y值,使得阴影位于文字下方和左侧。 3. 使用`translate()`方法平移`Graphics2D`上下文,应用偏移量。 4. 改变`Graphics2D`的颜色为阴影颜色,然后绘制文字。 5. 恢复原始的`Graphics2D`...
对数 数字 x 的 y 次幂 返回较大者 第3页 C#(WINFORM)学习 Math.Min(x,y) 返回较小者 枚举型 一般为字符串,可以定义带数字的枚举型,示例为: enum Color { Red=1, Blue=2, Green=3 } class Shape { public int ...
我们可以在该函数中使用GDI+的`Graphics`对象绘制矩形: ```cpp void CMyDialog::OnPaint() { CPaintDC dc(this); // 创建设备上下文 Graphics graphics(dc.m_hDC); // 创建GDI+的Graphics对象 Pen pen(Color...
int r = (int) ((Math.min(wid, hei)) / 2 / (1 + s)); g2d.translate(insets.left + r * (1 + s), insets.top + r * (1 + s)); g2d.scale(1, -1); for (int i = 0; i ; i++) { int angle = 90 - i * 6; ...
QGraphicsItem提供了setPos()函数,允许我们以像素为单位更改图形的x和y坐标。此外,还可以使用translate()函数来相对移动图形。 ### 旋转图形 旋转图形使用rotate()函数,该函数接受一个角度参数,以顺时针为正...
g.drawString(String.valueOf(c), x, y); x += fontSize; } ``` 为了使验证码更具挑战性,我们还可以调整字体大小、倾斜角度以及文字的位置。生成的图像可以保存到服务器的临时目录,或者直接以流的形式返回给...
这个类提供了创建、设置和获取点坐标的方法,如`getX()`和`getY()`来获取点的x和y坐标,` setLocation(int x, int y)`来设置点的位置。在实际应用中,我们可能还会使用到`translate(int dx, int dy)`方法来平移点的...
图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...
7.13.1. 从 1.0.x 到 1.5.0 或更新的版本的移植 7.13.2. 从 0.9.3 到 1.0.0RC1 或更新的版本的移植 7.13.3. 从 0.9.2 移植到 0.9.3 或更新的版本 7.13.4. 从 0.6.0 移植到 0.8.0 或更新的版本 7.13.5. 从 0.2.0 ...