`
7090
  • 浏览: 278477 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Graphics 的translate(int x, int y) 函数

    博客分类:
  • J2me
UI 
阅读更多

以前没有使用过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回来,使坐标系回归正常

 

 

分享到:
评论
2 楼 zhang_shuai870717 2016-01-06  
求指教。没懂
1 楼 刘亮love小雪 2015-04-23  
楼主我还是没有懂啊

相关推荐

    C#实现图像的平移旋转缩放

    int newY = (int)((imagePosition.X - pivot.X) * sinValue + (imagePosition.Y - pivot.Y) * cosValue) + pivot.Y; // 更新图像位置 imagePosition = new Point(newX, newY); } ``` 最后是缩放(Scaling),这...

    j2me中旋转图形的函数

    - `translate(int x, int y)`方法允许我们将图形坐标系平移x个单位水平方向和y个单位垂直方向。这实际上不会改变图形本身,而是改变了绘制它们的位置。 2. **图形旋转**: - `rotate(int angle)`方法用于旋转当前...

    插值算法源码及讲解

    给定一系列数据点 \({(x_n, y_n) | n = 0, 1, 2, …, N}\),目标是找到一个插值函数 \(P_n(x)\),使得该函数能够准确地通过这些数据点。具体来说,需要编写程序实现以下三个算法: 1. **拉格朗日插值**:利用...

    用C#画一个抛物线源码

    这段代码中,我们首先计算了抛物线的顶点坐标,然后根据窗体的尺寸定义了x轴和y轴的坐标范围,并创建了一个坐标变换矩阵,使得pictureBox内部的像素坐标对应到实际的x、y轴值。接着,我们遍历x轴上的每个点,计算...

    java 递归 画树

    int x, y; // 构造函数,getters, setters等... public void draw(Graphics2D g2d) { // 绘制节点... for (TreeNode child : children) { // 计算子节点的相对位置... child.draw(g2d.translate(x, y)); //...

    C#绘制验证码噪点源码(十分经典)

    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...

    OpenTK做的OpenGL拾取教程

    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`...

    C# for CSDN 乱七八糟的看不懂

    对数 数字 x 的 y 次幂 返回较大者 第3页 C#(WINFORM)学习 Math.Min(x,y) 返回较小者 枚举型 一般为字符串,可以定义带数字的枚举型,示例为: enum Color { Red=1, Blue=2, Green=3 } class Shape { public int ...

    GDI+绘制矩形,并且实现可旋转、缩放、移动功能(基于MFC对话框)

    我们可以在该函数中使用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; ...

    Qt-drawcli Qt之图形的基本操作

    QGraphicsItem提供了setPos()函数,允许我们以像素为单位更改图形的x和y坐标。此外,还可以使用translate()函数来相对移动图形。 ### 旋转图形 旋转图形使用rotate()函数,该函数接受一个角度参数,以顺时针为正...

    JSP彩色验证码

    g.drawString(String.valueOf(c), x, y); x += fontSize; } ``` 为了使验证码更具挑战性,我们还可以调整字体大小、倾斜角度以及文字的位置。生成的图像可以保存到服务器的临时目录,或者直接以流的形式返回给...

    2D-Points

    这个类提供了创建、设置和获取点坐标的方法,如`getX()`和`getY()`来获取点的x和y坐标,` setLocation(int x, int y)`来设置点的位置。在实际应用中,我们可能还会使用到`translate(int dx, int dy)`方法来平移点的...

    JAVA上百实例源码以及开源项目源代码

    图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...

    ZendFramework中文文档

    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 ...

Global site tag (gtag.js) - Google Analytics