亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? defaultpolaritemrenderer.java

?? jfreechart1.0.1 jsp繪制圖表的開發(fā)包
?? JAVA
字號:
/* ===========================================================
 * JFreeChart : a free chart library for the Java(tm) platform
 * ===========================================================
 *
 * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
 *
 * Project Info:  http://www.jfree.org/jfreechart/index.html
 *
 * This library is free software; you can redistribute it and/or modify it 
 * under the terms of the GNU Lesser General Public License as published by 
 * the Free Software Foundation; either version 2.1 of the License, or 
 * (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
 * License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
 * USA.  
 *
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
 * in the United States and other countries.]
 *
 * -----------------------------
 * DefaultPolarItemRenderer.java
 * -----------------------------
 * (C) Copyright 2004, by Solution Engineering, Inc. and Contributors.
 *
 * Original Author:  Daniel Bridenbecker, Solution Engineering, Inc.;
 * Contributor(s):   David Gilbert (for Object Refinery Limited);
 *
 * $Id: DefaultPolarItemRenderer.java,v 1.7.2.3 2005/11/28 12:06:35 mungady Exp $
 *
 * Changes
 * -------
 * 19-Jan-2004 : Version 1, contributed by DB with minor changes by DG (DG);
 * 15-Jul-2004 : Switched getX() with getXValue() and getY() with 
 *               getYValue() (DG);
 * 04-Oct-2004 : Renamed BooleanUtils --> BooleanUtilities (DG);
 * 20-Apr-2005 : Update for change to LegendItem class (DG);
 *
 */

package org.jfree.chart.renderer;

import java.awt.AlphaComposite;
import java.awt.Composite;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Point;
import java.awt.Polygon;
import java.awt.Shape;
import java.awt.Stroke;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import java.util.Iterator;
import java.util.List;

import org.jfree.chart.LegendItem;
import org.jfree.chart.axis.NumberTick;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.DrawingSupplier;
import org.jfree.chart.plot.PlotRenderingInfo;
import org.jfree.chart.plot.PolarPlot;
import org.jfree.data.xy.XYDataset;
import org.jfree.text.TextUtilities;
import org.jfree.ui.TextAnchor;
import org.jfree.util.BooleanList;
import org.jfree.util.BooleanUtilities;

/**
 * A renderer that can be used with the {@link PolarPlot} class.
 *
 * @author  Daniel Bridenbecker, Solution Engineering, Inc.
 */
public class DefaultPolarItemRenderer extends AbstractRenderer  
                                      implements PolarItemRenderer {
       
    /** The plot that the renderer is assigned to. */
    private PolarPlot plot;

    /** Flags that control whether the renderer fills each series or not. */
    private BooleanList seriesFilled;
   
    /**
     * Creates a new instance of DefaultPolarItemRenderer
     */
    public DefaultPolarItemRenderer() {
        this.seriesFilled = new BooleanList();
    }
   
    // --------------------------------
    // --- AbstractRenderer Methods ---
    // --------------------------------
   
    /** 
     * Returns the drawing supplier from the plot.
     *
     * @return The drawing supplier.
     */
    public DrawingSupplier getDrawingSupplier() {
        DrawingSupplier result = null;
        PolarPlot p = getPlot();
        if (p != null) {
            result = p.getDrawingSupplier();
        }
        return result;
    }
   
    // ----------------------
    // --- Public Methods ---
    // ----------------------
    /**
     * Set the plot associated with this renderer.
     * 
     * @param plot  the plot.
     */
    public void setPlot(PolarPlot plot) {
        this.plot = plot;
    }

    /**
     * Return the plot associated with this renderer.
     * 
     * @return The plot.
     */
    public PolarPlot getPlot() {
        return this.plot;
    }

    /**
     * Plots the data for a given series.
     * 
     * @param g2  the drawing surface.
     * @param dataArea  the data area.
     * @param info  collects plot rendering info.
     * @param plot  the plot.
     * @param dataset  the dataset.
     * @param seriesIndex  the series index.
     */
    public void drawSeries(Graphics2D g2, 
                           Rectangle2D dataArea, 
                           PlotRenderingInfo info,
                           PolarPlot plot,
                           XYDataset dataset,
                           int seriesIndex) {
        
        Polygon poly = new Polygon();
        int numPoints = dataset.getItemCount(seriesIndex);
        for (int i = 0; i < numPoints; i++) {
            double theta = dataset.getXValue(seriesIndex, i);
            double radius = dataset.getYValue(seriesIndex, i);
            Point p = plot.translateValueThetaRadiusToJava2D(
                theta, radius, dataArea
            );
            poly.addPoint(p.x, p.y);
        }
        g2.setPaint(getSeriesPaint(seriesIndex));
        g2.setStroke(getSeriesStroke(seriesIndex));
        if (isSeriesFilled(seriesIndex)) {
            Composite savedComposite = g2.getComposite();
            g2.setComposite(
                AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)
            );
            g2.fill(poly);
            g2.setComposite(savedComposite);
        }
        else {
            g2.draw(poly);
        }
    }

    /**
     * Returns <code>true</code> if the renderer should fill the specified 
     * series, and <code>false</code> otherwise.
     * 
     * @param series  the series index (zero-based).
     * 
     * @return A boolean.
     */
    public boolean isSeriesFilled(int series) {
        boolean result = false;
        Boolean b = this.seriesFilled.getBoolean(series);
        if (b != null) {
            result = b.booleanValue();
        }
        return result;
    }

    /**
     * Sets a flag that controls whether or not a series is filled.
     * 
     * @param series  the series index.
     * @param filled  the flag.
     */
    public void setSeriesFilled(int series, boolean filled) {
        this.seriesFilled.setBoolean(series, BooleanUtilities.valueOf(filled));
    }
    
    /**
     * Draw the angular gridlines - the spokes.
     * 
     * @param g2  the drawing surface.
     * @param plot  the plot.
     * @param ticks  the ticks.
     * @param dataArea  the data area.
     */
    public void drawAngularGridLines(Graphics2D g2, 
                                     PolarPlot plot, 
                                     List ticks,
                                     Rectangle2D dataArea) {
        
        g2.setFont(plot.getAngleLabelFont());
        g2.setStroke(plot.getAngleGridlineStroke());
        g2.setPaint(plot.getAngleGridlinePaint());
      
        double axisMin = plot.getAxis().getLowerBound();
        double maxRadius = plot.getMaxRadius();

        Point center = plot.translateValueThetaRadiusToJava2D(
            axisMin, axisMin, dataArea
        );
        Iterator iterator = ticks.iterator();
        while (iterator.hasNext()) {
            NumberTick tick = (NumberTick) iterator.next();
            Point p = plot.translateValueThetaRadiusToJava2D(
                tick.getNumber().doubleValue(), maxRadius, dataArea
            );
            g2.setPaint(plot.getAngleGridlinePaint());
            g2.drawLine(center.x, center.y, p.x, p.y);
            if (plot.isAngleLabelsVisible()) {
                int x = p.x;
                int y = p.y;
                g2.setPaint(plot.getAngleLabelPaint());
                TextUtilities.drawAlignedString(
                    tick.getText(), g2, x, y, TextAnchor.CENTER
                );
            }
        }
     }

    /**
     * Draw the radial gridlines - the rings.
     * 
     * @param g2  the drawing surface.
     * @param plot  the plot.
     * @param radialAxis  the radial axis.
     * @param ticks  the ticks.
     * @param dataArea  the data area.
     */
    public void drawRadialGridLines(Graphics2D g2, 
                                    PolarPlot plot,
                                    ValueAxis radialAxis,
                                    List ticks,
                                    Rectangle2D dataArea) {
        
        g2.setFont(radialAxis.getTickLabelFont());
        g2.setPaint(plot.getRadiusGridlinePaint());
        g2.setStroke(plot.getRadiusGridlineStroke());

        double axisMin = radialAxis.getLowerBound();
        Point center = plot.translateValueThetaRadiusToJava2D(
            axisMin, axisMin, dataArea
        );
        
        Iterator iterator = ticks.iterator();
        while (iterator.hasNext()) {
            NumberTick tick = (NumberTick) iterator.next();
            Point p = plot.translateValueThetaRadiusToJava2D(
                90.0, tick.getNumber().doubleValue(), dataArea
            );
            int r = p.x - center.x;
            int upperLeftX = center.x - r;
            int upperLeftY = center.y - r;
            int d = 2 * r;
            Ellipse2D ring = new Ellipse2D.Double(upperLeftX, upperLeftY, d, d);
            g2.setPaint(plot.getRadiusGridlinePaint());
            g2.draw(ring);
        }
    }

    /**
     * Return the legend for the given series.
     * 
     * @param series  the series index.
     * 
     * @return The legend item.
     */
    public LegendItem getLegendItem(int series) {
        LegendItem result = null;
        PolarPlot polarPlot = getPlot();
        if (polarPlot != null) {
            XYDataset dataset;
            dataset = polarPlot.getDataset();
            if (dataset != null) {
                String label = dataset.getSeriesKey(series).toString();
                String description = label;
                Shape shape = getSeriesShape(series);
                Paint paint = getSeriesPaint(series);
                Paint outlinePaint = getSeriesOutlinePaint(series);
                Stroke outlineStroke = getSeriesOutlineStroke(series);
                result = new LegendItem(label, description, null, null, 
                        shape, paint, outlineStroke, outlinePaint);
            }
        }
        return result;
    }

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人激情免费网| 精品成a人在线观看| 日韩av电影天堂| 久久久精品国产免费观看同学| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 在线看日韩精品电影| 狠狠色丁香久久婷婷综合丁香| 国产mv日韩mv欧美| 精品国产自在久精品国产| 成人av电影免费观看| 久久99深爱久久99精品| 夜夜夜精品看看| 亚洲欧美在线高清| 一区二区三区四区蜜桃| 青娱乐精品视频| 国产成人高清在线| 欧美日韩免费一区二区三区| 精品国产成人在线影院| 中文字幕成人av| 天堂va蜜桃一区二区三区漫画版| 久久99精品国产91久久来源| 99久久精品一区| 欧美一区二区三区成人| 成人欧美一区二区三区白人| 日韩精品国产精品| 91捆绑美女网站| 国产亚洲va综合人人澡精品| 亚洲成av人片一区二区梦乃| 欧美麻豆精品久久久久久| 久久久久久久久免费| 性做久久久久久免费观看| 99九九99九九九视频精品| 久久综合99re88久久爱| 日韩av在线发布| 欧美性猛交xxxx黑人交| 亚洲欧美怡红院| 91在线视频18| 最新成人av在线| 成人久久视频在线观看| 国产网站一区二区| 老司机午夜精品99久久| 91精品久久久久久久91蜜桃| 午夜欧美一区二区三区在线播放| 93久久精品日日躁夜夜躁欧美| 久久精品亚洲国产奇米99| 美腿丝袜亚洲三区| 精品国产露脸精彩对白| 精品制服美女丁香| 亚洲午夜激情av| www.亚洲色图.com| 亚洲人成电影网站色mp4| 色8久久精品久久久久久蜜| 亚洲综合清纯丝袜自拍| 欧美日韩精品一区二区三区四区| 日韩综合小视频| 久久久久久久久久久久久久久99| 风间由美中文字幕在线看视频国产欧美| 久久精品日产第一区二区三区高清版 | 久久精品国产第一区二区三区| 91精品国产福利在线观看| 欧美精品日韩一区| 天天综合网 天天综合色| 91尤物视频在线观看| 久久久精品免费网站| 91成人看片片| 亚洲色图第一区| 国内成人免费视频| 国产午夜精品一区二区| 日本伊人精品一区二区三区观看方式| 一本久道中文字幕精品亚洲嫩| 久久久久久久久岛国免费| 高清在线不卡av| 一区二区不卡在线播放| 欧美一级视频精品观看| 成人一级片网址| 日本女人一区二区三区| 久久精品夜色噜噜亚洲a∨| 在线看不卡av| 国产成人夜色高潮福利影视| 亚洲国产视频一区二区| 日韩欧美综合在线| 97精品国产露脸对白| 日韩福利视频导航| 亚洲视频一二三区| 国产免费久久精品| 欧美一级片免费看| 欧美日韩综合色| 色噜噜狠狠色综合欧洲selulu| 国产精品一色哟哟哟| 婷婷综合五月天| 亚洲激情成人在线| 国产色产综合色产在线视频| 欧美午夜寂寞影院| 成av人片一区二区| 国产精品中文字幕一区二区三区| 三级不卡在线观看| 亚洲图片一区二区| 依依成人精品视频| 亚洲精品五月天| 亚洲一区二区av电影| 中文字幕中文乱码欧美一区二区 | 欧美日韩极品在线观看一区| 成人免费不卡视频| 国产精品456| 国产精品自在在线| 色天天综合久久久久综合片| 国产成人av电影在线观看| 精品中文字幕一区二区小辣椒| 久久精品国产网站| 国内精品自线一区二区三区视频| 日韩av成人高清| 成人综合婷婷国产精品久久| 懂色av一区二区三区免费观看| 懂色av中文字幕一区二区三区 | 国产精品嫩草影院av蜜臀| 自拍偷拍亚洲综合| 亚洲亚洲精品在线观看| 亚洲一二三四久久| 日本怡春院一区二区| 久久黄色级2电影| av在线这里只有精品| 欧美日韩精品二区第二页| 欧美www视频| 亚洲男人电影天堂| 国产一区二区三区免费观看| 岛国av在线一区| 欧美美女一区二区| 国产拍欧美日韩视频二区| 国产欧美日韩视频一区二区 | 国产精品一区二区久激情瑜伽| 粉嫩久久99精品久久久久久夜| 色婷婷av一区二区三区gif| 69av一区二区三区| 国产精品麻豆网站| 另类小说综合欧美亚洲| 精品视频一区三区九区| 欧美电影免费观看高清完整版在 | 欧美α欧美αv大片| 亚洲日本在线a| 日本不卡不码高清免费观看 | 欧美日韩成人高清| 一区二区三区四区高清精品免费观看 | 在线看国产一区| 中文字幕在线不卡一区| 久久成人精品无人区| 一本色道**综合亚洲精品蜜桃冫| 欧美不卡在线视频| 视频一区二区国产| 91色九色蝌蚪| 中文字幕在线不卡国产视频| 丝瓜av网站精品一区二区| 99久久综合色| 亚洲视频狠狠干| 97精品久久久午夜一区二区三区| 国产精品久久久久久久久动漫 | 午夜欧美电影在线观看| 在线视频观看一区| 亚洲日本一区二区| av午夜精品一区二区三区| 久久久久99精品一区| 国产成人av自拍| 日本一区二区三级电影在线观看 | 亚洲欧洲综合另类| 色婷婷国产精品| 亚洲电影在线免费观看| 欧美日韩视频在线一区二区| 亚洲一区二区在线免费看| 色综合天天综合在线视频| 亚洲精品成人天堂一二三| 在线国产亚洲欧美| 婷婷成人激情在线网| 日韩精品综合一本久道在线视频| 日本亚洲视频在线| 久久久www免费人成精品| 成人黄色免费短视频| 亚洲v中文字幕| 久久尤物电影视频在线观看| 波多野结衣欧美| 日韩国产欧美一区二区三区| 日韩欧美电影一区| 国产成人av福利| 亚洲一区二区三区视频在线| 777亚洲妇女| 91视视频在线观看入口直接观看www | 久久尤物电影视频在线观看| 波多野结衣在线aⅴ中文字幕不卡| 亚洲一卡二卡三卡四卡五卡| 久久日韩粉嫩一区二区三区| av一区二区三区黑人| 日韩主播视频在线| 中文字幕+乱码+中文字幕一区| 欧美色爱综合网| 波多野结衣在线aⅴ中文字幕不卡| 日韩福利电影在线| 亚洲国产精品一区二区www在线 | 91在线免费看| 国内精品伊人久久久久av影院| 一区二区高清在线| 国产精品久久久久桃色tv| 久久奇米777|