Exemple #1
0
function imagefilledellipseaa_Plot4EllipsePoints(&$im, $CX, $CY, $X, $Y, $color, $t)
{
    imagesetpixel($im, $CX + $X, $CY + $Y, $color);
    //{point in quadrant 1}
    imagesetpixel($im, $CX - $X, $CY + $Y, $color);
    //{point in quadrant 2}
    imagesetpixel($im, $CX - $X, $CY - $Y, $color);
    //{point in quadrant 3}
    imagesetpixel($im, $CX + $X, $CY - $Y, $color);
    //{point in quadrant 4}
    $aColor = color2rgba($color);
    $mColor = imagecolorallocate($im, $aColor[0], $aColor[1], $aColor[2]);
    if ($t == 1) {
        imageline($im, $CX - $X, $CY - $Y + 1, $CX + $X, $CY - $Y + 1, $mColor);
        imageline($im, $CX - $X, $CY + $Y - 1, $CX + $X, $CY + $Y - 1, $mColor);
    } else {
        imageline($im, $CX - $X + 1, $CY - $Y, $CX + $X - 1, $CY - $Y, $mColor);
        imageline($im, $CX - $X + 1, $CY + $Y, $CX + $X - 1, $CY + $Y, $mColor);
    }
    imagecolordeallocate($im, $mColor);
}
Exemple #2
0
 function stat_proc_graph($start_date, $end_date, $type = 'done')
 {
     $app = get_app();
     // month scope
     $start_date_orig = str_replace('-', '/', $start_date);
     $start_date = date('y-n-', strtotime($start_date));
     $end_date_orig = str_replace('-', '/', $end_date);
     $end_date = date('y-n-', strtotime($end_date));
     //
     $dates = get_dates_array($start_date, $end_date);
     $months = get_months_array($dates);
     //
     $colors = array('1' => '#24a9de', '2' => '#ffbf00', '3' => '#d7faad', '4' => '#7282fe', '5' => '#4638aa', '6' => '#ddf86c', '7' => '#6d9a3d', '8' => '#f05eb0', '9' => '#b22451', '10' => '#298623', '11' => '#0f0086', '12' => '#ce4697', '13' => '#3979ff', '14' => '#934b8a', '15' => '#db3516', '16' => '#92692e', '17' => '#0fd456', '18' => '#b9f327', '19' => '#6bbb73', '20' => '#54e9af', '21' => '#f315d4', '22' => '#3d3028', '23' => '#7e1713', '24' => '#e7fa26', '99' => '#d7bc06');
     // procs
     $procs = array();
     //按期间查询各工种完工与未完工工序数
     foreach ($months as $key => $mon) {
         // $key: '14-1'
         $sql = "SELECT * FROM parts WHERE num LIKE '%{$key}%' ORDER BY num asc";
         $parts = Part::find_by_sql($sql);
         // parts
         foreach ($parts as $part) {
             // processes
             foreach ($part->processes as $proc) {
                 // create proc item
                 if (!array_key_exists($proc->name, $procs)) {
                     $procs[$proc->name] = array('id' => $proc->name, 'color' => $colors[$proc->name], 'rgba_color' => color2rgba($colors[$proc->name]), 'values' => array());
                 }
                 // create proc_month item
                 if (!array_key_exists($key, $procs[$proc->name]['values'])) {
                     $procs[$proc->name]['values'][$key] = 0;
                 }
                 //
                 if ($type == 'done' && $proc->is_done) {
                     $procs[$proc->name]['values'][$key] += get_proc_time($proc);
                 }
                 if ($type == 'undo' && !$proc->is_done) {
                     $procs[$proc->name]['values'][$key] += get_proc_time($proc);
                 }
             }
         }
     }
     // 如果有月份没有数据
     // 自动补0
     foreach ($procs as $p_key => $proc) {
         foreach ($months as $m_key => $mon) {
             if (!array_key_exists($m_key, $procs[$p_key]['values'])) {
                 $procs[$p_key]['values'][$m_key] = 0;
             }
         }
         uksort($procs[$p_key]['values'], 'month_key_cmp');
     }
     ksort($procs);
     render_with_layout('graph.php', 'Statistics/stat_proc_graph.php', compact('months', 'procs', 'type'));
 }