Трохоиды
Описание и работа:
Программа рисует трохоиды. Минимальное значение полос прокрутки = 1, а максимальное = 90 pix.
Download:     [trohoidi.class]


Программа:

// Copyright Konstantin S. Matveyev // 27 August 2000 // <applet code="trohoidi.class" width=600 height=600> // </applet> import java.applet.*; import java.awt.*; class trohoidi extends Applet { private Scrollbar sb1, sb2, sb3; public void init() { setBackground(Color.black); setForeground(Color.lightGray); sb1 = new Scrollbar(Scrollbar.HORIZONTAL, 95 , 5, 1, 95); sb2 = new Scrollbar(Scrollbar.HORIZONTAL, 95 , 5, 1, 95); sb3 = new Scrollbar(Scrollbar.HORIZONTAL, 95 , 5, 1, 95); Panel p=new Panel(); p.setLayout(new GridLayout(3, 2)); p.add(new Label("Радиус опорной окружности: ")); p.add(sb1); p.add(new Label("Радиус подвижной окружности (П.О): ")); p.add(sb2); p.add(new Label("Расстояние точки, описывающей кривую, от центра П.О: ")); p.add(sb3); setLayout(new BorderLayout()); add("North", p); } public void start() { } double r1=90, r=90, h=90; double m=r/r1; public boolean handleEvent(Event evtObj) { if(evtObj.target instanceof Scrollbar) { r1=sb1.getValue(); r= sb2.getValue(); h= sb3.getValue(); m=r/r1; repaint(); } return super.handleEvent(evtObj); } public void paint(Graphics g) { for(double t=1; t<=360; t=t+0.02) { double xx = (r1+m*r1)*Math.cos(m*t) - h*Math.cos(t+m*t); double yy = (r1+m*r1)*Math.sin(m*t) - h*Math.sin(t+m*t); int x = (int) xx; int y = (int) yy; g.setColor(Color.white); g.drawLine(300+x, 330+y, 300+x, 330+y); } } public void destroy() { } }

Aport Ranker be number one


Копейка не несет никакой ответственности за предоставленные материалы.
Copyright © 1999 Копейка.

Сайт создан в системе uCoz