mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-18 05:26:57 +08:00
49 lines
13 KiB
HTML
49 lines
13 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
<html>
|
||
<head>
|
||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||
<title>画一条线段</title>
|
||
</head>
|
||
<body class="docs"><div id="layout">
|
||
<div id="layout-content"><div id="function.imageline" class="refentry">
|
||
<div class="refnamediv">
|
||
<h1 class="refname">imageline</h1>
|
||
<p class="verinfo">(PHP 4, PHP 5, PHP 7)</p><p class="refpurpose"><span class="refname">imageline</span> — <span class="dc-title">画一条线段</span></p>
|
||
|
||
</div>
|
||
<div class="refsect1 unknown-notet" id="refsect1-function.imageline-unknown-notet">
|
||
<h3 class="title">说明</h3>
|
||
<div class="methodsynopsis dc-description">
|
||
<span class="methodname"><strong>imageline</strong></span>
|
||
( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$image</code></span>
|
||
, <span class="methodparam"><span class="type">int</span> <code class="parameter">$x1</code></span>
|
||
, <span class="methodparam"><span class="type">int</span> <code class="parameter">$y1</code></span>
|
||
, <span class="methodparam"><span class="type">int</span> <code class="parameter">$x2</code></span>
|
||
, <span class="methodparam"><span class="type">int</span> <code class="parameter">$y2</code></span>
|
||
, <span class="methodparam"><span class="type">int</span> <code class="parameter">$color</code></span>
|
||
) : <span class="type">bool</span></div>
|
||
|
||
<p class="para rdfs-comment">
|
||
<span class="function"><strong>imageline()</strong></span> 用 <code class="parameter">color</code>
|
||
颜色在图像 <code class="parameter">image</code> 中从坐标
|
||
<code class="parameter">x1</code>,<code class="parameter">y1</code> 到
|
||
<code class="parameter">x2</code>,<code class="parameter">y2</code>(图像左上角为
|
||
0, 0)画一条线段。
|
||
</p>
|
||
<div class="example" id="example-3721">
|
||
<p><strong>Example #1 画一条粗线</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">imagelinethick</span><span style="color: #007700">(</span><span style="color: #0000BB">$image</span><span style="color: #007700">, </span><span style="color: #0000BB">$x1</span><span style="color: #007700">, </span><span style="color: #0000BB">$y1</span><span style="color: #007700">, </span><span style="color: #0000BB">$x2</span><span style="color: #007700">, </span><span style="color: #0000BB">$y2</span><span style="color: #007700">, </span><span style="color: #0000BB">$color</span><span style="color: #007700">, </span><span style="color: #0000BB">$thick </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #FF8000">/* 下面两行只在线段直角相交时好使<br /> imagesetthickness($image, $thick);<br /> return imageline($image, $x1, $y1, $x2, $y2, $color);<br /> */<br /> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$thick </span><span style="color: #007700">== </span><span style="color: #0000BB">1</span><span style="color: #007700">) {<br /> return </span><span style="color: #0000BB">imageline</span><span style="color: #007700">(</span><span style="color: #0000BB">$image</span><span style="color: #007700">, </span><span style="color: #0000BB">$x1</span><span style="color: #007700">, </span><span style="color: #0000BB">$y1</span><span style="color: #007700">, </span><span style="color: #0000BB">$x2</span><span style="color: #007700">, </span><span style="color: #0000BB">$y2</span><span style="color: #007700">, </span><span style="color: #0000BB">$color</span><span style="color: #007700">);<br /> }<br /> </span><span style="color: #0000BB">$t </span><span style="color: #007700">= </span><span style="color: #0000BB">$thick </span><span style="color: #007700">/ </span><span style="color: #0000BB">2 </span><span style="color: #007700">- </span><span style="color: #0000BB">0.5</span><span style="color: #007700">;<br /> if (</span><span style="color: #0000BB">$x1 </span><span style="color: #007700">== </span><span style="color: #0000BB">$x2 </span><span style="color: #007700">|| </span><span style="color: #0000BB">$y1 </span><span style="color: #007700">== </span><span style="color: #0000BB">$y2</span><span style="color: #007700">) {<br /> return </span><span style="color: #0000BB">imagefilledrectangle</span><span style="color: #007700">(</span><span style="color: #0000BB">$image</span><span style="color: #007700">, </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">min</span><span style="color: #007700">(</span><span style="color: #0000BB">$x1</span><span style="color: #007700">, </span><span style="color: #0000BB">$x2</span><span style="color: #007700">) - </span><span style="color: #0000BB">$t</span><span style="color: #007700">), </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">min</span><span style="color: #007700">(</span><span style="color: #0000BB">$y1</span><span style="color: #007700">, </span><span style="color: #0000BB">$y2</span><span style="color: #007700">) - </span><span style="color: #0000BB">$t</span><span style="color: #007700">), </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">max</span><span style="color: #007700">(</span><span style="color: #0000BB">$x1</span><span style="color: #007700">, </span><span style="color: #0000BB">$x2</span><span style="color: #007700">) + </span><span style="color: #0000BB">$t</span><span style="color: #007700">), </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">max</span><span style="color: #007700">(</span><span style="color: #0000BB">$y1</span><span style="color: #007700">, </span><span style="color: #0000BB">$y2</span><span style="color: #007700">) + </span><span style="color: #0000BB">$t</span><span style="color: #007700">), </span><span style="color: #0000BB">$color</span><span style="color: #007700">);<br /> }<br /> </span><span style="color: #0000BB">$k </span><span style="color: #007700">= (</span><span style="color: #0000BB">$y2 </span><span style="color: #007700">- </span><span style="color: #0000BB">$y1</span><span style="color: #007700">) / (</span><span style="color: #0000BB">$x2 </span><span style="color: #007700">- </span><span style="color: #0000BB">$x1</span><span style="color: #007700">); </span><span style="color: #FF8000">//y = kx + q<br /> </span><span style="color: #0000BB">$a </span><span style="color: #007700">= </span><span style="color: #0000BB">$t </span><span style="color: #007700">/ </span><span style="color: #0000BB">sqrt</span><span style="color: #007700">(</span><span style="color: #0000BB">1 </span><span style="color: #007700">+ </span><span style="color: #0000BB">pow</span><span style="color: #007700">(</span><span style="color: #0000BB">$k</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">));<br /> </span><span style="color: #0000BB">$points </span><span style="color: #007700">= array(<br /> </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">$x1 </span><span style="color: #007700">- (</span><span style="color: #0000BB">1</span><span style="color: #007700">+</span><span style="color: #0000BB">$k</span><span style="color: #007700">)*</span><span style="color: #0000BB">$a</span><span style="color: #007700">), </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">$y1 </span><span style="color: #007700">+ (</span><span style="color: #0000BB">1</span><span style="color: #007700">-</span><span style="color: #0000BB">$k</span><span style="color: #007700">)*</span><span style="color: #0000BB">$a</span><span style="color: #007700">),<br /> </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">$x1 </span><span style="color: #007700">- (</span><span style="color: #0000BB">1</span><span style="color: #007700">-</span><span style="color: #0000BB">$k</span><span style="color: #007700">)*</span><span style="color: #0000BB">$a</span><span style="color: #007700">), </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">$y1 </span><span style="color: #007700">- (</span><span style="color: #0000BB">1</span><span style="color: #007700">+</span><span style="color: #0000BB">$k</span><span style="color: #007700">)*</span><span style="color: #0000BB">$a</span><span style="color: #007700">),<br /> </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">$x2 </span><span style="color: #007700">+ (</span><span style="color: #0000BB">1</span><span style="color: #007700">+</span><span style="color: #0000BB">$k</span><span style="color: #007700">)*</span><span style="color: #0000BB">$a</span><span style="color: #007700">), </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">$y2 </span><span style="color: #007700">- (</span><span style="color: #0000BB">1</span><span style="color: #007700">-</span><span style="color: #0000BB">$k</span><span style="color: #007700">)*</span><span style="color: #0000BB">$a</span><span style="color: #007700">),<br /> </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">$x2 </span><span style="color: #007700">+ (</span><span style="color: #0000BB">1</span><span style="color: #007700">-</span><span style="color: #0000BB">$k</span><span style="color: #007700">)*</span><span style="color: #0000BB">$a</span><span style="color: #007700">), </span><span style="color: #0000BB">round</span><span style="color: #007700">(</span><span style="color: #0000BB">$y2 </span><span style="color: #007700">+ (</span><span style="color: #0000BB">1</span><span style="color: #007700">+</span><span style="color: #0000BB">$k</span><span style="color: #007700">)*</span><span style="color: #0000BB">$a</span><span style="color: #007700">),<br /> );<br /> </span><span style="color: #0000BB">imagefilledpolygon</span><span style="color: #007700">(</span><span style="color: #0000BB">$image</span><span style="color: #007700">, </span><span style="color: #0000BB">$points</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">, </span><span style="color: #0000BB">$color</span><span style="color: #007700">);<br /> return </span><span style="color: #0000BB">imagepolygon</span><span style="color: #007700">(</span><span style="color: #0000BB">$image</span><span style="color: #007700">, </span><span style="color: #0000BB">$points</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">, </span><span style="color: #0000BB">$color</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
<p class="para">
|
||
参见 <span class="function"><a href="imagecreatetruecolor.html" class="function">imagecreatetruecolor()</a></span> 和
|
||
<span class="function"><a href="imagecolorallocate.html" class="function">imagecolorallocate()</a></span>。
|
||
</p>
|
||
</div>
|
||
|
||
</div></div></div></body></html> |