按照你的要求編寫的Java圖形界面畫的三葉玫瑰線程序如下:
江蘇網站制作公司哪家好,找創新互聯!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設等網站項目制作,到程序開發,運營維護。創新互聯于2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯。
//三葉玫瑰線
import?java.awt.Color;
import?java.awt.Graphics;
import?java.awt.event.ComponentEvent;
import?java.awt.event.ComponentListener;
import?java.util.ArrayList;
import?java.util.List;
import?javax.swing.JFrame;
import?javax.swing.JPanel;
public?class?BB?extends?JFrame?{
MyJPanel?mjp=new?MyJPanel();
BB(){
add(mjp);
setSize(500,?500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
this.validate();
}
public?static?void?main(String[]?args)?{
new?BB();
}
}
class?MyJPanel?extends?JPanel?implements?ComponentListener{
MyJPanel(){
this.setBackground(Color.WHITE);
}
int?roses=3;
public?void?paint(Graphics?g){
super.paint(g);
int?x0,?y0;??
x0?=?this.getWidth()?/?2;??
y0?=?this.getHeight()?/?2;??
g.setColor(Color.BLUE);??
g.drawLine(x0,?0,?x0,?y0?*?2);?
g.drawLine(0,?y0,?x0?*?2,?y0);??
ListInteger?listx=new?ArrayListInteger();
ListInteger?listy=new?ArrayListInteger();
for?(int?i?=?0;?i??1024;?i++)?{????
double?angle?=?i?*?Math.PI?/?512;????
double?radius?=?200*Math.sin(roses?*?angle);???
int?x?=?(int)?Math.round(radius?*?Math.cos(angle));????
int?y?=?(int)?Math.round(radius?*?Math.sin(angle));
listx.add(x0+x);
listy.add(y0+y);
}???
for?(int?i?=?0;?i??listx.size()-1;?i++)?{
g.drawLine(listx.get(i),listy.get(i),?listx.get(i+1),?listy.get(i+1));//畫點??
}
}
@Override
public?void?componentHidden(ComponentEvent?arg0)?{}
@Override
public?void?componentMoved(ComponentEvent?arg0)?{}
@Override
public?void?componentResized(ComponentEvent?arg0)?{
repaint();
}
@Override
public?void?componentShown(ComponentEvent?arg0)?{}
}
運行結果:
rose=3時
rose=4時
rose=5時
當變量rose等于其它值時的圖案,你自己試吧,這里我就不展示了.
設備:紙張,鉛筆,直尺。
四葉玫瑰線的一種定義:定長線段AB =2a,它的兩個端點在垂直兩直線上滑動,從兩直線的交點O向線段AB作垂線OM,垂足M的軌跡稱一’為四葉玫瑰線(見圖).其極坐標方程為P=a sin 2B。
簡介
極坐標系是一個二維坐標系統。該坐標系統中任意位置可由一個夾角和一段相對原點—極點的距離來表示。極坐標系的應用領域十分廣泛,包括數學、物理、工程、航海、航空以及機器人領域。在兩點間的關系用夾角和距離很容易表示時,極坐標系便顯得尤為有用。
而在平面直角坐標系中,這樣的關系就只能使用三角函數來表示。對于很多類型的曲線,極坐標方程是最簡單的表達形式,甚至對于某些曲線來說,只有極坐標方程能夠表示。
package epm.mp.gateway.util;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
public class Rose extends JFrame implements ComponentListener, ItemListener {
private JComboBox comboboxColor;
// 顏色組合框
public Rose() {
super("玫瑰線");
this.setSize(600, 400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
Object data[] = { Color.red, Color.green, Color.blue };
comboboxColor = new JComboBox(data);
// 顏色組合框
comboboxColor.addItemListener(this);
// 注冊組合框的選擇事件監聽器
this.add(comboboxColor);
this.addComponentListener(this);
// 注冊框架窗口的選擇事件監聽器
this.setVisible(true);
this.validate();
}
//r=asin3θ
//轉化為直角坐標系
// 輸入下面程序用于輸出三葉玫瑰線的圖形,三葉玫瑰線的參數方程為:
// x = r * sin(3t)* cos(t);
//y = r *sin(3t) * sin(t)
//其中: 0 = t = 2 * 3.14159
//
public void paint(Graphics g){
paint(g,3);
}
public void paint(Graphics g,int roses) {
int x0, y0;
// 原點坐標
x0 = this.getWidth() / 2;
// 窗口的寬度
y0 = this.getHeight() / 2;
g.setColor((Color) comboboxColor.getSelectedItem());
// 設置畫線顏色為組合框選中顏色
g.drawLine(x0, 0, x0, y0 * 2);
g.drawLine(0, y0, x0 * 2, y0);
int j = 0;
while (j 200) {
for (int i = 0; i 1023; i++) {
double angle = i * Math.PI / 512;
double radius = j * Math.sin(roses * angle);
int x = (int) Math.round(radius * Math.cos(angle) );
int y = (int) Math.round(radius * Math.sin(angle));
g.fillOval(x0 + x, y0 + y, 1, 1);//畫點
}
j += 10;
}
}
public void itemStateChanged(ItemEvent e) {
// 選中單選按鈕
repaint();
// 重畫
}
public void componentResized(ComponentEvent e) {
// 改變窗口大小時
repaint();
}
public void componentMoved(ComponentEvent e) {
}
public void componentHidden(ComponentEvent e) {
}
public void componentShown(ComponentEvent e) {
}
public static void main(String[] arg) {
new Rose();
}
}
theta=linspace(0,2*pi,400); rou=4*sin(2*theta); polar(theta,rou)
^ x = -2:0.1:2;
y = exp(-(x.^bai2));
theta = linspace(0, 2*pi);
rho = sin(2*theta);
t1 = linspace(0,30,1000);
x3 = 3*t1./(1+t1.^3);
y3 = 3*t1.^2./(1+t1.^3);
t2 = linspace(0,2*pi);
x4 = t2 - sin(t2);
y4 = 1 - cos(t2);
subplot(2,2,1);plot(x,y);title('概率曲線 y = exp(-x^2)')
subplot(2,2,2);polar(theta,rho),title('四葉玫瑰線 p = sin(2*t)')
subplot(2,2,3);plot(x3,y3);title('葉形線');
subplot(2,2,4);plot(x4,y4);title('擺線');
擴展資料:
四葉玫瑰線(four-leaved的一種.定長線段AB =2a,它的兩個端點在垂直兩直線上滑動,從兩直線的交點O向線段AB作垂線OM,垂足M的軌跡稱一’為四葉玫瑰線(見圖).其極坐標方程為P=a sin 2B。
^clc;clear
subplot(2,2,1)
ezplot('exp(-x^bai2)')
subplot(2,2,2)
ezpolar('sin(2*t)')
subplot(2,2,3)
t=0:pi/100:2*pi;
x=3*t./(1+t.^3);
y=3*t.^2./(1+t.^3);
參考資料來源:百度百科-四葉玫瑰線
繪制四葉玫瑰線ρ=a×sin(2θ)
繪制三葉玫瑰線ρ=a×sin(3θ)
四葉玫瑰線方程為r=sin(2θ),二四象限范圍為(π /2,π)和(3π/2,2π),2θ則為(π,2π)和(3π,4 π),sin(2θ)都是負值"r不是應該大于等于0",r是極徑,一般是非負的 ,但有時候也可以為負數,其幾何意義是正極 徑的反向延長線
分享題目:java代碼四葉玫瑰線 java四葉玫瑰數
標題URL:http://m.newbst.com/article36/hjposg.html
成都網站建設公司_創新互聯,為您提供營銷型網站建設、企業建站、動態網站、建站公司、軟件開發、
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯