gpt4 book ai didi

php - 在我的自定义形状多边形jpgraph中填充渐变色

转载 作者:可可西里 更新时间:2023-11-01 12:21:21 26 4
gpt4 key购买 nike

我正在使用 jpgraph并创建雷达图。

面对使用渐变颜色填充自定义形状多边形的问题。

我有功能来填充具有平底的渐变颜色多边形,我想在我的自定义形状多边形中填充渐变颜色。谁能帮我?我该怎么做?

当前输出:

enter image description here

期望的输出:

enter image description here

你可以在这里找到渐变类。

http://code.google.com/r/linksoftafrica-maison-george/source/browse/libs/jpgraph/jpgraph_gradient.php

// Fill a special case of a polygon with a flat bottom
// with a gradient. Can be used for filled line plots.
// Please note that this is NOT a generic gradient polygon fill
// routine. It assumes that the bottom is flat (like a drawing
// of a mountain)
function FilledFlatPolygon($pts,$from_color,$to_color) {
if( count($pts) == 0 ) return;

$maxy=$pts[1];
$miny=$pts[1];
$n = count($pts) ;
for( $i=0, $idx=0; $i < $n; $i += 2) {
$x = round($pts[$i]);
$y = round($pts[$i+1]);
$miny = min($miny,$y);
$maxy = max($maxy,$y);
}

$colors = array();
$this->GetColArray($from_color,$to_color,abs($maxy-$miny)+1,$colors,$this->numcolors);
for($i=$miny, $idx=0; $i <= $maxy; ++$i ) {
$colmap[$i] = $colors[$idx++];
}

$n = count($pts)/2 ;
$idx = 0 ;
while( $idx < $n-1 ) {
$p1 = array(round($pts[$idx*2]),round($pts[$idx*2+1]));
$p2 = array(round($pts[++$idx*2]),round($pts[$idx*2+1]));

// Find the largest rectangle we can fill
$y = max($p1[1],$p2[1]) ;
for($yy=$maxy; $yy > $y; --$yy) {
$this->img->current_color = $colmap[$yy];
$this->img->Line($p1[0],$yy,$p2[0]-1,$yy);
}

if( $p1[1] == $p2[1] ) continue;

// Fill the rest using lines (slow...)
$slope = ($p2[0]-$p1[0])/($p1[1]-$p2[1]);
$x1 = $p1[0];
$x2 = $p2[0]-1;
$start = $y;
if( $p1[1] > $p2[1] ) {
while( $y >= $p2[1] ) {
$x1=$slope*($start-$y)+$p1[0];
$this->img->current_color = $colmap[$y];
$this->img->Line($x1,$y,$x2,$y);
--$y;
}
}
else {
while( $y >= $p1[1] ) {
$x2=$p2[0]+$slope*($start-$y);
$this->img->current_color = $colmap[$y];
$this->img->Line($x1,$y,$x2,$y);
--$y;
}
}
}
}

最佳答案

在我看来,您当前的代码不适合这项任务。您需要 Gouraud 阴影三角形(3 边多边形)的代码。

如果您有相应的代码,您只需绘制三个三角形,三角形的一个点位于图形的中心,两个点位于雷达轴上。

很遗憾,我没有找到jpgraph的现成代码。

关于php - 在我的自定义形状多边形jpgraph中填充渐变色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29935584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com