php画菱形
1. php循环输出*的实心菱形
其实这个简单的 写个类 参数传入,循环根据参数计算输出就可以的
2. 用php语言编程:输出一个由“*”符号组成的菱形图形(必须使用for循环语句)
我的是C#编的,语言不重要,关键是掌握方法,我晚自习想了两节课后自己想到了原创的算法(虽然回家调试没得到菱形,但很快就修改成功了)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 字符图案输出
{
class Program
{
static void Main(string[] args)
{
bool b = true;
while (b == true)
{
try//判断数据是否合法↓
{
Console.Write("请输入一个奇数: ");
int n = Convert.ToInt32(Console.ReadLine());
if (n % 2 == 0)
{
continue;
}
for (int i = 1; i <= (2 * n) -1; i++)
{
for (int j = 1; j <= Math.Abs(n - i); j++)//绝对值实现对称, 如:3210123,想想,◆是不是先输出空格,并逐行减少, 后逐行增多
{
Console.Write(' ');
}
for (int k = 1; k <= Math.Abs(n - Math.Abs(n - i)); k++)//同理,◆第一行输出1个*,后逐行增多,然后又逐行减少
{
Console.Write("* ");//如果*后没有空格,则是半个菱形
}
Console.WriteLine();
}
}
catch
{
b = true;
}
}
}
}
}
3. 求php用星形画出菱形的代码
网页:
<?
$n = 5;
$f = false;
$i = 0;
while($i >= 0)
{
for($j = 0; $j < $n-$i-1; ++$j) echo " ";
for($j = 0; $j < 2*$i+1; ++$j) echo "*";
echo "
";
if($i+1 == $n) $f = true;
if($f) --$i; else ++$i;
}
?>
控制台脚本:
<?
$n = 5;
$f = false;
$i = 0;
while($i >= 0)
{
for($j = 0; $j < $n-$i-1; ++$j) echo " ";
for($j = 0; $j < 2*$i+1; ++$j) echo "*";
echo "\n";
if($i+1 == $n) $f = true;
if($f) --$i; else ++$i;
}
?>
$n是菱形的边长
4. PHP怎么打印菱形
```php
function draw($width){
$i=1;
while($i<$width*2){
$col=$i>$width?2*$width-$i:$i;
echo str_repeat("*",$col),"\n";
$i+=2;
}
}
draw(7);
```
5. 怎样才能画出菱形
众所周知,画菱形有好多方法,如下为主要方法:
手画
画两个半径相等不同心的相交圆 连接两个圆心和两个圆交点 ,即得菱形
两圆半径均为菱形边长。
CAD
画个等腰三角形,然后镜像;
如果没有角度要求,随意画一条倾斜的线段,然后给这条线段进行复制偏移后得到两条平行的斜线,对这两条平行的斜线进行镜像。
如果有角度要求,先用直线旋转到你要的角度,然后可以通过镜像线的方式,平行或垂直镜像都可以达到菱形的完成。
excel
直接插入软件中自带的形状图片即可。
操作方法为:
在Excel界面左下角找到“自选图形”,点击后选择“基本形状”,在基本形状中找到菱形的图标,点击。就可以在Excel中画菱形了。
如下图:
1、找到菱形图标。
6. 如何画出菱形
如果你知道菱形的水平距离和竖直距离的话,,可以先画个椭圆,然后用线分别拾取菱形的四个端点,连接到一起就是一个菱形,单独的画菱形命令是没有的,,
7. 新手求助,php用for循环输出一个由“*”符号组成的菱形图案求代码
<?php
$n=6;//层数来
for($i=1;$i<=$n;$i++)//打印自正三角
{
for($j=1;$j<=$n-$i;$j++){
echo " "; //打印空格
}
for($k=1;$k<=($i-1)*2+1;$k++){
echo "*"; //打印星星个数
} //三角星星个数=层数减1乘以2加1
echo "<br/>"; //即(n-1)*2+1,也写作2*n-1
}
for($s=$n-1;$s>=1;$s--)//打印倒三角
{
for($t=1;$t<=$n-$s;$t++){
echo " ";
}
for($u=1;$u<=($s-1)*2+1;$u++){
echo "*";
}
echo "<br/>";
}
?>
最后效果:
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
你可以通过修改层数,得到你要的效果
8. php用*做实心菱形
<?php
$a=5;//控制循环的行数
$str="*";//输出显示字符
$space=" ";//输出空格字符
//以上是已基本设定
for($i=1;$i<=$a;$i++){//$b代表内空容格数目
for($b=1;$b<=$a-$i;$b++){//控制输出的空格数
echo$space;
}//$c代表输出字符数目
for($c=1;$c<=($i-1)*2+1;$c++){//控制输出的字符数目
echo$str;
}
echo"<br/>";
}//上面的循环负责菱形的上半部分,下面的循环负责菱形的下半部分
for($i=$a-1;$i>=1;$i--){//$b代表空格数目
for($b=1;$b<=$a-$i;$b++){//控制输出的空格数
echo$space;
}//$c代表输出字符数目
for($c=1;$c<=($i-1)*2+1;$c++){
echo$str;
}
echo"<br/>";
}
?>
9. html5中怎么画菱形,多边形
一、多边形类:polygon.js
var Point = function (x, y) {
this.x = x;
this.y = y;
};
var Polygon = function (centerX, centerY, radius, sides, startAngle, strokeStyle, fillStyle, filled) {
this.x = centerX;//外接圆心x坐标
this.y = centerY;
this.radius = radius;//外接圆半径
this.sides = sides;//边数
this.startAngle = startAngle;//开始角度
this.strokeStyle = strokeStyle;
this.fillStyle = fillStyle;
this.filled = filled;
};
Polygon.prototype = {
getPoints: function () {//获取多边形所有顶点
var points = [],
angle = this.startAngle || 0;
for (var i=0; i < this.sides; ++i) {
points.push(new Point(this.x + this.radius * Math.sin(angle),
this.y - this.radius * Math.cos(angle)));
angle += 2*Math.PI/this.sides;
}
return points;
},
createPath: function (context) {//创建多边形路径
var points = this.getPoints();
context.beginPath();
context.moveTo(points[0].x, points[0].y);
for (var i=1; i < this.sides; ++i) {
context.lineTo(points[i].x, points[i].y);
}
context.closePath();
},
stroke: function (context) {//对多边形描边
context.save();
this.createPath(context);
context.strokeStyle = this.strokeStyle;
context.stroke();
context.restore();
},
fill: function (context) {//填充
context.save();
this.createPath(context);
context.fillStyle = this.fillStyle;
context.fill();
context.restore();
},
move: function (x, y) {
this.x = x;
this.y = y;
},
};
二、HTML文件
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=gbk">
<title>拖动多边形</title>
<style>
body{
background: #eeeeee;
}
#dragDiv {
position: absolute;
left: 25px;
top: 50px;
}
#controls {
position: absolute;
left: 25px;
top: 25px;
}
#canvas {
background: #ffffff;
cursor: crosshair;
margin-left: 10px;
margin-top: 10px;
-webkit-box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
-moz-box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
}
</style>
</head><body>
<canvas id='canvas' width='850' height='500'>Canvas not supported</canvas>
<div id='controls'>
描边颜色: <select id='strokeStyleSelect'>
<option value='red' selected>red</option>
<option value='green'>green</option>
<option value='blue'>blue</option>
<option value='orange'>orange</option>
<option value='goldenrod'>goldenrod</option>
<option value='navy'>navy</option>
<option value='purple'>purple</option>
</select>
填充颜色: <select id='fillStyleSelect'>
<option value='rgba(255,0,0,0.5)'>semi-transparent red</option>
<option value='green'>green</option>
<option value='orange'>orange</option>
<option value='goldenrod' selected>goldenrod</option>
<option value='navy'>navy</option>
<option value='purple'>purple</option>
</select>
边数: <select id='sidesSelect'>
<option value=4 select>4</option>
<option value=6>6</option>
<option value=8>8</option>
<option value=10>10</option>
<option value=12>12</option>
<option value=20>20</option>
</select>
开始角度: <select id='startAngleSelect'>
<option value=0 select>0</option>
<option value=22.5>22.5</option>
<option value=45>45</option>
<option value=67.5>67.5</option>
<option value=90>90</option>
</select>
是否填充 <input id='fillCheckbox' type='checkbox' checked/>
<input id='eraseAllButton' type='button' value='清除所有'/>
</div>
<div id='dragDiv'>
编辑: <input type='checkbox' id='editCheckbox'/>
</div>
<script src = 'polygon.js'></script>
<script src = 'example.js'></script>
</body></html>
三、JS文件 example.js
var canvas = document.getElementById('canvas'),
context = canvas.getContext('2d'),
//清除按钮
eraseAllButton = document.getElementById('eraseAllButton'),
//描边颜色
strokeStyleSelect = document.getElementById('strokeStyleSelect'),
//画多边形的开始角度
startAngleSelect = document.getElementById('startAngleSelect'),
//填充颜色
fillStyleSelect = document.getElementById('fillStyleSelect'),
//不否填充
fillCheckbox = document.getElementById('fillCheckbox'),
//进入编辑
editCheckbox = document.getElementById('editCheckbox'),
//边数
sidesSelect = document.getElementById('sidesSelect'),
//canvas位图数据
drawingSurfaceImageData,
//记录鼠标按下的位置
mousedown = {},
//橡皮筋矩形框
rubberbandRect = {},
dragging = false,//是否在拖动状态
draggingOffsetX,
draggingOffsetY,
sides = 8,
startAngle = 0,
guidewires = true,
editing = false,
//保存已绘制的多边形
polygons = [];
// Functions..........................................................
//画网络线
function drawGrid(color, stepx, stepy) {
context.save()
context.shadowColor = undefined;
context.shadowBlur = 0;
context.shadowOffsetX = 0;
context.shadowOffsetY = 0;
context.strokeStyle = color;
context.fillStyle = '#ffffff';
context.lineWidth = 0.5;
context.fillRect(0, 0, context.canvas.width, context.canvas.height);
context.beginPath();
for (var i = stepx + 0.5; i < context.canvas.width; i += stepx) {
context.moveTo(i, 0);
context.lineTo(i, context.canvas.height);
}
context.stroke();
context.beginPath();
for (var i = stepy + 0.5; i < context.canvas.height; i += stepy) {
context.moveTo(0, i);
context.lineTo(context.canvas.width, i);
}
context.stroke();
context.restore();
}
//窗口坐标转canvas坐标
function windowToCanvas(x, y) {
var bbox = canvas.getBoundingClientRect();
return { x: x - bbox.left * (canvas.width / bbox.width),
y: y - bbox.top * (canvas.height / bbox.height)
};
}
// 保存或恢复已绘制的画面...................................
function saveDrawingSurface() {
drawingSurfaceImageData = context.getImageData(0, 0,canvas.width,canvas.height);
}
function restoreDrawingSurface() {
context.putImageData(drawingSurfaceImageData, 0, 0);
}
// 画多边形.....................................................
function drawPolygon(polygon) {
context.beginPath();
polygon.createPath(context);
polygon.stroke(context);
if (fillCheckbox.checked) {
polygon.fill(context);
}
}
// 更新橡皮筋矩形框...................................................
function updateRubberbandRectangle(loc) {
rubberbandRect.width = Math.abs(loc.x - mousedown.x);
rubberbandRect.height = Math.abs(loc.y - mousedown.y);
if (loc.x > mousedown.x) rubberbandRect.left = mousedown.x;
else rubberbandRect.left = loc.x;
if (loc.y > mousedown.y) rubberbandRect.top = mousedown.y;
else rubberbandRect.top = loc.y;
}
//以鼠标按下点为圆心,橡皮筋框宽为半径创建多边形
function drawRubberbandShape(loc, sides, startAngle) {
var polygon = new Polygon(mousedown.x, mousedown.y,
rubberbandRect.width,
parseInt(sidesSelect.value),
(Math.PI / 180) * parseInt(startAngleSelect.value),
context.strokeStyle,
context.fillStyle,
fillCheckbox.checked);
drawPolygon(polygon);//画多边形
if (!dragging) {//保存这个多边形
polygons.push(polygon);
}
}
//更新橡皮筋
function updateRubberband(loc, sides, startAngle) {
updateRubberbandRectangle(loc);
drawRubberbandShape(loc, sides, startAngle);
}
// 网络线.................................................
function drawHorizontalLine (y) {
context.beginPath();
context.moveTo(0,y+0.5);
context.lineTo(context.canvas.width,y+0.5);
context.stroke();
}
function drawVerticalLine (x) {
context.beginPath();
context.moveTo(x+0.5,0);
context.lineTo(x+0.5,context.canvas.height);
context.stroke();
}
function drawGuidewires(x, y) {
context.save();
context.strokeStyle = 'rgba(0,0,230,0.4)';
context.lineWidth = 0.5;
drawVerticalLine(x);
drawHorizontalLine(y);
context.restore();
}
//绘制保存的所有多边形
function drawPolygons() {
polygons.forEach( function (polygon) {
drawPolygon(polygon);
});
}
希望能够帮助到你!