⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compassplot.html

📁 jfreechart最新源代码
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<FONT color="green">594</FONT>            innerRadius = radius - 26;<a name="line.594"></a><FONT color="green">595</FONT>            outerRadius = 7;<a name="line.595"></a><FONT color="green">596</FONT>            for (int w = 45; w &lt; 360; w += 90) {<a name="line.596"></a><FONT color="green">597</FONT>                a = Math.toRadians(w);<a name="line.597"></a><FONT color="green">598</FONT>                x1 = midX - ((int) (Math.sin(a) * innerRadius));<a name="line.598"></a><FONT color="green">599</FONT>                y1 = midY - ((int) (Math.cos(a) * innerRadius));<a name="line.599"></a><FONT color="green">600</FONT>                g2.fillOval(<a name="line.600"></a><FONT color="green">601</FONT>                    x1 - outerRadius, y1 - outerRadius, <a name="line.601"></a><FONT color="green">602</FONT>                    2 * outerRadius, 2 * outerRadius<a name="line.602"></a><FONT color="green">603</FONT>                );<a name="line.603"></a><FONT color="green">604</FONT>            }<a name="line.604"></a><FONT color="green">605</FONT>    <a name="line.605"></a><FONT color="green">606</FONT>            /// Squares<a name="line.606"></a><FONT color="green">607</FONT>            for (int w = 0; w &lt; 360; w += 90) {<a name="line.607"></a><FONT color="green">608</FONT>                a = Math.toRadians(w);<a name="line.608"></a><FONT color="green">609</FONT>                x1 = midX - ((int) (Math.sin(a) * innerRadius));<a name="line.609"></a><FONT color="green">610</FONT>                y1 = midY - ((int) (Math.cos(a) * innerRadius));<a name="line.610"></a><FONT color="green">611</FONT>    <a name="line.611"></a><FONT color="green">612</FONT>                Polygon p = new Polygon();<a name="line.612"></a><FONT color="green">613</FONT>                p.addPoint(x1 - outerRadius, y1);<a name="line.613"></a><FONT color="green">614</FONT>                p.addPoint(x1, y1 + outerRadius);<a name="line.614"></a><FONT color="green">615</FONT>                p.addPoint(x1 + outerRadius, y1);<a name="line.615"></a><FONT color="green">616</FONT>                p.addPoint(x1, y1 - outerRadius);<a name="line.616"></a><FONT color="green">617</FONT>                g2.fillPolygon(p);<a name="line.617"></a><FONT color="green">618</FONT>            }<a name="line.618"></a><FONT color="green">619</FONT>    <a name="line.619"></a><FONT color="green">620</FONT>            /// Draw N, S, E, W<a name="line.620"></a><FONT color="green">621</FONT>            innerRadius = radius - 42;<a name="line.621"></a><FONT color="green">622</FONT>            Font f = getCompassFont(radius);<a name="line.622"></a><FONT color="green">623</FONT>            g2.setFont(f);<a name="line.623"></a><FONT color="green">624</FONT>            g2.drawString("N", midX - 5, midY - innerRadius + f.getSize());<a name="line.624"></a><FONT color="green">625</FONT>            g2.drawString("S", midX - 5, midY + innerRadius - 5);<a name="line.625"></a><FONT color="green">626</FONT>            g2.drawString("W", midX - innerRadius + 5, midY + 5);<a name="line.626"></a><FONT color="green">627</FONT>            g2.drawString("E", midX + innerRadius - f.getSize(), midY + 5);<a name="line.627"></a><FONT color="green">628</FONT>    <a name="line.628"></a><FONT color="green">629</FONT>            // plot the data (unless the dataset is null)...<a name="line.629"></a><FONT color="green">630</FONT>            y1 = radius / 2;<a name="line.630"></a><FONT color="green">631</FONT>            x1 = radius / 6;<a name="line.631"></a><FONT color="green">632</FONT>            Rectangle2D needleArea = new Rectangle2D.Double(<a name="line.632"></a><FONT color="green">633</FONT>                (midX - x1), (midY - y1), (2 * x1), (2 * y1)<a name="line.633"></a><FONT color="green">634</FONT>            );<a name="line.634"></a><FONT color="green">635</FONT>            int x = this.seriesNeedle.length;<a name="line.635"></a><FONT color="green">636</FONT>            int current = 0;<a name="line.636"></a><FONT color="green">637</FONT>            double value = 0;<a name="line.637"></a><FONT color="green">638</FONT>            int i = (this.datasets.length - 1);<a name="line.638"></a><FONT color="green">639</FONT>            for (; i &gt;= 0; --i) {<a name="line.639"></a><FONT color="green">640</FONT>                ValueDataset data = this.datasets[i];<a name="line.640"></a><FONT color="green">641</FONT>    <a name="line.641"></a><FONT color="green">642</FONT>                if (data != null &amp;&amp; data.getValue() != null) {<a name="line.642"></a><FONT color="green">643</FONT>                    value = (data.getValue().doubleValue()) <a name="line.643"></a><FONT color="green">644</FONT>                        % this.revolutionDistance;<a name="line.644"></a><FONT color="green">645</FONT>                    value = value / this.revolutionDistance * 360;<a name="line.645"></a><FONT color="green">646</FONT>                    current = i % x;<a name="line.646"></a><FONT color="green">647</FONT>                    this.seriesNeedle[current].draw(g2, needleArea, value);<a name="line.647"></a><FONT color="green">648</FONT>                }<a name="line.648"></a><FONT color="green">649</FONT>            }<a name="line.649"></a><FONT color="green">650</FONT>    <a name="line.650"></a><FONT color="green">651</FONT>            if (this.drawBorder) {<a name="line.651"></a><FONT color="green">652</FONT>                drawOutline(g2, area);<a name="line.652"></a><FONT color="green">653</FONT>            }<a name="line.653"></a><FONT color="green">654</FONT>    <a name="line.654"></a><FONT color="green">655</FONT>        }<a name="line.655"></a><FONT color="green">656</FONT>    <a name="line.656"></a><FONT color="green">657</FONT>        /**<a name="line.657"></a><FONT color="green">658</FONT>         * Returns a short string describing the type of plot.<a name="line.658"></a><FONT color="green">659</FONT>         *<a name="line.659"></a><FONT color="green">660</FONT>         * @return A string describing the plot.<a name="line.660"></a><FONT color="green">661</FONT>         */<a name="line.661"></a><FONT color="green">662</FONT>        public String getPlotType() {<a name="line.662"></a><FONT color="green">663</FONT>            return localizationResources.getString("Compass_Plot");<a name="line.663"></a><FONT color="green">664</FONT>        }<a name="line.664"></a><FONT color="green">665</FONT>    <a name="line.665"></a><FONT color="green">666</FONT>        /**<a name="line.666"></a><FONT color="green">667</FONT>         * Returns the legend items for the plot.  For now, no legend is available <a name="line.667"></a><FONT color="green">668</FONT>         * - this method returns null.<a name="line.668"></a><FONT color="green">669</FONT>         *<a name="line.669"></a><FONT color="green">670</FONT>         * @return The legend items.<a name="line.670"></a><FONT color="green">671</FONT>         */<a name="line.671"></a><FONT color="green">672</FONT>        public LegendItemCollection getLegendItems() {<a name="line.672"></a><FONT color="green">673</FONT>            return null;<a name="line.673"></a><FONT color="green">674</FONT>        }<a name="line.674"></a><FONT color="green">675</FONT>    <a name="line.675"></a><FONT color="green">676</FONT>        /**<a name="line.676"></a><FONT color="green">677</FONT>         * No zooming is implemented for compass plot, so this method is empty.<a name="line.677"></a><FONT color="green">678</FONT>         *<a name="line.678"></a><FONT color="green">679</FONT>         * @param percent  the zoom amount.<a name="line.679"></a><FONT color="green">680</FONT>         */<a name="line.680"></a><FONT color="green">681</FONT>        public void zoom(double percent) {<a name="line.681"></a><FONT color="green">682</FONT>            // no zooming possible<a name="line.682"></a><FONT color="green">683</FONT>        }<a name="line.683"></a><FONT color="green">684</FONT>    <a name="line.684"></a><FONT color="green">685</FONT>        /**<a name="line.685"></a><FONT color="green">686</FONT>         * Returns the font for the compass, adjusted for the size of the plot.<a name="line.686"></a><FONT color="green">687</FONT>         *<a name="line.687"></a><FONT color="green">688</FONT>         * @param radius the radius.<a name="line.688"></a><FONT color="green">689</FONT>         *<a name="line.689"></a><FONT color="green">690</FONT>         * @return The font.<a name="line.690"></a><FONT color="green">691</FONT>         */<a name="line.691"></a><FONT color="green">692</FONT>        protected Font getCompassFont(int radius) {<a name="line.692"></a><FONT color="green">693</FONT>            float fontSize = radius / 10.0f;<a name="line.693"></a><FONT color="green">694</FONT>            if (fontSize &lt; 8) {<a name="line.694"></a><FONT color="green">695</FONT>                fontSize = 8;<a name="line.695"></a><FONT color="green">696</FONT>            }<a name="line.696"></a><FONT color="green">697</FONT>            Font newFont = this.compassFont.deriveFont(fontSize);<a name="line.697"></a><FONT color="green">698</FONT>            return newFont;<a name="line.698"></a><FONT color="green">699</FONT>        }<a name="line.699"></a><FONT color="green">700</FONT>    <a name="line.700"></a><FONT color="green">701</FONT>        /**<a name="line.701"></a><FONT color="green">702</FONT>         * Tests an object for equality with this plot.<a name="line.702"></a><FONT color="green">703</FONT>         *<a name="line.703"></a><FONT color="green">704</FONT>         * @param obj  the object (&lt;code&gt;null&lt;/code&gt; permitted).<a name="line.704"></a><FONT color="green">705</FONT>         *<a name="line.705"></a><FONT color="green">706</FONT>         * @return A boolean.<a name="line.706"></a><FONT color="green">707</FONT>         */<a name="line.707"></a><FONT color="green">708</FONT>        public boolean equals(Object obj) {<a name="line.708"></a><FONT color="green">709</FONT>            if (obj == this) {<a name="line.709"></a><FONT color="green">710</FONT>                return true;<a name="line.710"></a><FONT color="green">711</FONT>            }<a name="line.711"></a><FONT color="green">712</FONT>            if (!(obj instanceof CompassPlot)) {<a name="line.712"></a><FONT color="green">713</FONT>                return false;<a name="line.713"></a><FONT color="green">714</FONT>            }<a name="line.714"></a><FONT color="green">715</FONT>            if (!super.equals(obj)) {<a name="line.715"></a><FONT color="green">716</FONT>                return false;<a name="line.716"></a><FONT color="green">717</FONT>            }<a name="line.717"></a><FONT color="green">718</FONT>            CompassPlot that = (CompassPlot) obj;<a name="line.718"></a><FONT color="green">719</FONT>            if (this.labelType != that.labelType) {<a name="line.719"></a><FONT color="green">720</FONT>                return false;<a name="line.720"></a><FONT color="green">721</FONT>            }<a name="line.721"></a><FONT color="green">722</FONT>            if (!ObjectUtilities.equal(this.labelFont, that.labelFont)) {<a name="line.722"></a><FONT color="green">723</FONT>                return false;<a name="line.723"></a><FONT color="green">724</FONT>            }<a name="line.724"></a><FONT color="green">725</FONT>            if (this.drawBorder != that.drawBorder) {<a name="line.725"></a><FONT color="green">726</FONT>                return false;<a name="line.726"></a><FONT color="green">727</FONT>            }<a name="line.727"></a><FONT color="green">728</FONT>            if (!PaintUtilities.equal(this.roseHighlightPaint, <a name="line.728"></a><FONT color="green">729</FONT>                    that.roseHighlightPaint)) {<a name="line.729"></a><FONT color="green">730</FONT>                return false;<a name="line.730"></a><FONT color="green">731</FONT>            }<a name="line.731"></a><FONT color="green">732</FONT>            if (!PaintUtilities.equal(this.rosePaint, that.rosePaint)) {<a name="line.732"></a><FONT color="green">733</FONT>                return false;<a name="line.733"></a><FONT color="green">734</FONT>            }<a name="line.734"></a><FONT color="green">735</FONT>            if (!PaintUtilities.equal(this.roseCenterPaint, <a name="line.735"></a><FONT color="green">736</FONT>                    that.roseCenterPaint)) {<a name="line.736"></a><FONT color="green">737</FONT>                return false;<a name="line.737"></a><FONT color="green">738</FONT>            }<a name="line.738"></a><FONT color="green">739</FONT>            if (!ObjectUtilities.equal(this.compassFont, that.compas

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -