graphics.drawRect()坐标解释

本文介绍了使用ActionScript 3.0 (AS3) 进行绘图时坐标系统的理解和应用。通过创建Shape对象并使用graphics API绘制了一个黄色正方形,详细解释了绘制图形时坐标系的概念及其相对于舞台和Shape对象的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

var shape:Shape=new Shape  ;
shape.graphics.beginFill(0xffcc00);
shape.graphics.drawRect(0,0,100,100);
//shape.graphics.drawRect(88,88,100,100);
shape.graphics.endFill();
addChild(shape);
trace(shape.x);  //输出:0
trace(shape.y);  //输出:0
//trace(shape.x);  输出:88
//trace(shape.y);  输出:88

 

    先创建一个Shape类型对象shape,注意到整个代码里从未为它指定x、y坐标,因此为系统默认的x=0、y=0(shape因为是添加到舞台,因此它的坐标是全局坐标);然后调用drawRect方法在它上面绘制一个宽高均为100的正方形,并设置此正方形的x=0、y=0、width=100、height=100,,注意:这段代码执行原理是:绘制一个正方形,再添加到shape上面(或者说在shape上面绘制正方形),因此正方形是shape的子可视对象(只是它没有名称而已),它的坐标(drawRect方法里写的坐标)是相对于shape的坐标,并不是相对于舞台的全局坐标。

转载于:https://www.cnblogs.com/leon3286/archive/2010/07/09/1774533.html

package com.example.canvasdemo;//声明当前类所在的包路径。 //注意:canvasdemo (文件夹 项目名)包名 需与项目结构一致,否则会导致编译错误。 //导入 Android SDK 中的相关类,用于实现画布绘制功能。 import android.content.Context;//提供应用环境信息(如资源、系统服务)。 import android.graphics.Canvas;//画布,用于绘制图形、文本等。 import android.graphics.Color; import android.graphics.Paint;//画笔,用于定义绘制样式(如颜色、粗细)。 import android.util.AttributeSet; import android.view.View;//所有 UI 组件的基类,CustomView 继承自 View。 import androidx.annotation.Nullable; public class CustomView extends View { //定义一个自定义视图类,继承自 View。 private Paint paint; public CustomView(Context context) { super(context); initPaint(); } public CustomView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); initPaint(); } // 初始化画笔 private void initPaint() { paint = new Paint(); paint.setColor(Color.RED); // 设置颜色 paint.setStyle(Paint.Style.FILL); // 填充模式 paint.setAntiAlias(true); // 开启抗锯齿 } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);//系统传入的画布对象,用于绘制图形。 // 1. 先绘制白色背景(覆盖整个画布) canvas.drawColor(Color.WHITE);//将整个画布填充为白色。 // 2. 绘制红色圆形 paint.setColor(Color.RED);//设置画笔颜色为红色。 canvas.drawCircle(300, 300, 100, paint); //圆心坐标(X, Y)。半径。使用的画笔对象。 // 3. 绘制蓝色矩形 paint.setColor(Color.BLUE);//设置画笔颜色为蓝色。 canvas.drawRect(100, 500, 500, 800, paint); //矩形左上角坐标(X, Y)。矩形右下角坐标(X, Y)。使用的画笔对象。 // 4. 绘制黑色文本 paint.setColor(Color.BLACK); paint.setTextSize(50);//设置文本大小为 50 像素。 canvas.drawText("Hello Canvas!", 100, 200, paint); } //文本内容。文本基线起点坐标(X, Y)。使用的画笔对象。 } 基于以上代码进行修改,添加功能:可以用鼠标点击图形可以识别并显示提示是否需要删除? 并且用鼠标长按图形可以移动该图像。重新要求给我生成一个完整的代码,相应包的导入也不能少。还要说明说明配置文件的代码。要有过程,以及最后的两个完整代码。说明文件创建的步骤,并给上面代码加上相应的注释。
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值