在PHP中画一个实心矩形代码,php代码绘制一个矩形实例代码

这篇文章主要介绍了php绘制一个矩形的方法,主要涉及GD库中imagerectangle方法的使用技巧,需要的朋友可以参考下

本文实例讲述了php绘制一个矩形的方法。分享给大家供大家参考。具体实现方法如下:

代码如下:<?php

//1、创建画布

$im = imagecreatetruecolor(300,200);//新建一个真彩色图像,默认背景是黑色,返回图像标识符。另外还有一个函数 imagecreate 已经不推荐使用。

//2、绘制所需要的图像

$red = imagecolorallocate($im,255,0,0);//创建一个颜色,以供使用

imagerectangle($im,30,30,240,140,$red);//画一个矩形。参数说明:30,30表示矩形左上角坐标;240,140表示矩形右下角坐标;$red表示颜色

//imagefilledrectangle($im,30,30,240,140,$red);//填充的矩形

//3、输出图像

header("content-type: image/png");

imagepng($im);//输出到页面。如果有第二个参数[,$filename],则表示保存图像

//4、销毁图像,释放内存

imagedestroy($im);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用OpenGL实现实心小球沿矩形均速运动的示例代码: ``` #include <GL/glut.h> #include <math.h> float ballX = 0.0f; // 实心小球的横坐标 float ballY = 0.0f; // 实心小球的纵坐标 float ballRadius = 0.2f; // 实心小球的半径 float ballSpeed = 0.01f; // 实心小球的速度 float rectWidth = 2.0f; // 矩形的宽度 float rectHeight = 2.0f; // 矩形的高度 void drawBall() { glColor3f(1.0f, 0.0f, 0.0f); // 设置颜色为红色 glBegin(GL_TRIANGLE_FAN); glVertex2f(ballX, ballY); // 中心点 int numSegments = 100; float angle; for (int i = 0; i <= numSegments; i++) { angle = i * 2.0f * M_PI / numSegments; glVertex2f(ballX + (ballRadius * cos(angle)), ballY + (ballRadius * sin(angle))); } glEnd(); } void drawRect() { glColor3f(0.0f, 0.0f, 1.0f); // 设置颜色为蓝色 glBegin(GL_QUADS); glVertex2f(-rectWidth/2, -rectHeight/2); // 左下角 glVertex2f(rectWidth/2, -rectHeight/2); // 右下角 glVertex2f(rectWidth/2, rectHeight/2); // 右上角 glVertex2f(-rectWidth/2, rectHeight/2); // 左上角 glEnd(); } void display() { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // 设置背景为白色 glClear(GL_COLOR_BUFFER_BIT); drawBall(); drawRect(); glutSwapBuffers(); } void update(int value) { // 计算实心小球下一帧的位置 ballX += ballSpeed; if (ballX > rectWidth/2 - ballRadius || ballX < -rectWidth/2 + ballRadius) { ballSpeed *= -1; } glutPostRedisplay(); glutTimerFunc(10, update, 0); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitWindowSize(500, 500); glutInitWindowPosition(100, 100); glutCreateWindow("Solid Ball"); glutDisplayFunc(display); glutTimerFunc(10, update, 0); glutMainLoop(); return 0; } ``` 在这个示例代码中,我们定义了一个实心小球和一个矩形,并让实心小球沿着矩形均速运动。在 `drawBall()` 函数中,我们使用 `GL_TRIANGLE_FAN` 来绘制实心小球,使用 `glVertex2f()` 来设置每个顶点的坐标。在 `drawRect()` 函数中,我们使用 `GL_QUADS` 来绘制矩形,同样使用 `glVertex2f()` 来设置每个顶点的坐标。在 `display()` 函数中,我们清空颜色缓冲区并绘制实心小球和矩形。在 `update()` 函数中,我们计算实心小球下一帧的位置,并检查是否碰到了矩形的边界,如果是,则改变小球的运动方向。最后,我们使用 `glutTimerFunc()` 来定时更新实心小球的位置,并使用 `glutMainLoop()` 进入主循环。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值