Rysowanie cykloidy

0

Witam, wie ktos jak mozna narysowac cykloide w java. Nie chodzi mi o gotowy przyklad tylko o pare wskazowek.
Pozdrawiam

0

Hm, iterując t? Oczywiście nie możesz dodawać szeregu składników zmiennoprzecinkowych, bo ci się błędy zakumulują. Zastosuj mniej więcej taką pętlę:

double ostatnie_x = startowe_x;
double ostatnie_y = startowe_y;
for (int i = start; i * współczynnik_double < limit_double; i++) {
  double t = i * współczynnik_double;
  // tutaj obliczenia
  double aktualne_x = ...
  double aktualne_y = ...
  // tutaj rysowanie
  rysuj_linię od (ostatnie_x, ostatnie_y) do (aktualne_x, aktualne_y);
  ostatnie_x = aktualne_x;
  ostatnie_y = aktualne_y;
}

Mając t i r możesz łatwo wyliczyć aktualne x i y z wzorków: http://pl.wikipedia.org/wiki/Cykloida

0

Dzieki za pomoc ale i tak nie wiem jak to zrobic

0

z czym KONKRETNIE masz problem?

0

Problem mam z poskladaniem tych wzorow. A czy mozecie powiedziec mi czy to jest dobrze napisane?
SPIRALA

import java.awt.* ;
import java.awt.geom.* ;
public class Spirala extends DrawPanel {
  public static void main(final String[] args) {
    DrawFrame frame = new DrawFrame ("Drawing of a spiral") ;
    Spiral drawing = new Spiral () ;
    frame.add(drawing) ;
    frame.pack() ;
    frame.centreOnScreen() ;
    frame.setVisible(true) ;
  }
  public Spiral() {}
  public Spiral(final int w, final int h) {
    super(w, h) ;
  }
  public void paint(final Graphics g) {
    Graphics2D g2d = (Graphics2D)g ;
    Rectangle2D rectangle = new Rectangle2D.Double (0, 0, 0, 0) ;
    double theta = 0.0 ;
    double increment = 2 * Math.PI/100.0 ;
    for (int n = 0 ; n < 1500 ; ++n) {
      theta += increment ;
      double radius = 75.0 * n / 1000 ;
      double x = 150 + (radius * Math.cos(theta)) ;
      double y = 150 + (radius * Math.sin(theta)) ;
      rectangle.setRect(x, y, 1, 1) ;
      g2d.draw(rectangle) ;
    }
  }
} 

Wykres cosinusa

import java.awt.*;
import java.applet.*;

public class wykres extends Applet
{ int scaleW, scaleH, baseY;

  public void start ( )
  { // ustawienie skali rysowanego wykresu
    scaleW = getSize().width;
    scaleH = (int)((getSize().height-50)/2);
    baseY  = (int)(getSize().height/2+20);

    // ustawienie tła apletu
    setBackground(Color.white);
  }

  // funkcja obliczająca współrzędną Y funkcji cos
  double fCos (double x)
  { double cos = Math.cos(x) * scaleH;
    return (baseY - cos);
  }

  public void paint (Graphics g)
  { // stała π i krok zmiany X w skali wykresu
    double x = -3.14;
    double step = (2 * 3.14) / (getSize().width - 60);

    // rysowanie osi Y
    g.drawLine(20, baseY, scaleW-20, baseY);
    g.drawLine(scaleW-30, baseY-5, scaleW-20, baseY);
    g.drawLine(scaleW-30, baseY+5, scaleW-20, baseY);

    // rysowanie osi X
    g.drawLine((int)(scaleW/2),30, (int)(scaleW/2), getSize().height-2);
    g.drawLine((int)(scaleW/2)-5, 40, (int)(scaleW/2), 30);
    g.drawLine((int)(scaleW/2)+5, 40, (int)(scaleW/2), 30);

    // rysowanie wykresu funkcji cosinus
    g.setColor(Color.blue);
    x = -3.14;
    for (int i = 30 ; i < getSize().width-30 ; i++,x+=step )
    { g.drawLine(i, (int)fCos(x), i + 1, (int)fCos(x + step));
    }
  }
}
}
```java


Bo u mnie kompiluje sie ale wyswietla jakis blad
0

Wyobraź sobie sytuację - dostarczasz niesprawny samochód do mechanika, a na jego pytanie co się zepsuło, jakie są objawy niedziałania odpowiadasz - coś nie działa. Panie Zenku, coś mi nie działa w samochodzie, proszę naprawić; ale proszę też go nie uruchamiać (nie każdy z nas ma kompilator javy i czas na kompilację).
więc - JAKI KU*WA "JAKIŚ BŁĄD"?!?!?

0

Error : Invalid path, \bin\javac.exe -g -classpath

0

A co to polecenie: \bin\javac.exe -g -classpath ma wg Ciebie robić? Uruchamiasz kompilator nie podając co ma być skompilowane.

0

Mam napisany program spirala i wybieram w menu Build file i pojawia sie:
Error : Invalid path, \bin\javac.exe -g -classpath "C:\Documents and Settings\fg\Moje dokumenty" -d "C:\Documents and Settings\fg\Moje dokumenty" "C:\Documents and Settings\fg\Moje dokumenty\Spirala.java"

Process completed.

Moglby mi ktos wyjasnic o co w tym chodzi. Jestem poczatkujacy nie kazdy rodzi sie ze znajomoscia programowania

1 użytkowników online, w tym zalogowanych: 0, gości: 1