@@ -0,0 +1,73 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<!-- You may freely edit this file. See commented blocks below for --> | |||
<!-- some examples of how to customize the build. --> | |||
<!-- (If you delete it and reopen the project it will be recreated.) --> | |||
<!-- By default, only the Clean and Build commands use this build script. --> | |||
<!-- Commands such as Run, Debug, and Test only use this build script if --> | |||
<!-- the Compile on Save feature is turned off for the project. --> | |||
<!-- You can turn off the Compile on Save (or Deploy on Save) setting --> | |||
<!-- in the project's Project Properties dialog box.--> | |||
<project name="Grafik2D" default="default" basedir="."> | |||
<description>Builds, tests, and runs the project Grafik2D.</description> | |||
<import file="nbproject/build-impl.xml"/> | |||
<!-- | |||
There exist several targets which are by default empty and which can be | |||
used for execution of your tasks. These targets are usually executed | |||
before and after some main targets. They are: | |||
-pre-init: called before initialization of project properties | |||
-post-init: called after initialization of project properties | |||
-pre-compile: called before javac compilation | |||
-post-compile: called after javac compilation | |||
-pre-compile-single: called before javac compilation of single file | |||
-post-compile-single: called after javac compilation of single file | |||
-pre-compile-test: called before javac compilation of JUnit tests | |||
-post-compile-test: called after javac compilation of JUnit tests | |||
-pre-compile-test-single: called before javac compilation of single JUnit test | |||
-post-compile-test-single: called after javac compilation of single JUunit test | |||
-pre-jar: called before JAR building | |||
-post-jar: called after JAR building | |||
-post-clean: called after cleaning build products | |||
(Targets beginning with '-' are not intended to be called on their own.) | |||
Example of inserting an obfuscator after compilation could look like this: | |||
<target name="-post-compile"> | |||
<obfuscate> | |||
<fileset dir="${build.classes.dir}"/> | |||
</obfuscate> | |||
</target> | |||
For list of available properties check the imported | |||
nbproject/build-impl.xml file. | |||
Another way to customize the build is by overriding existing main targets. | |||
The targets of interest are: | |||
-init-macrodef-javac: defines macro for javac compilation | |||
-init-macrodef-junit: defines macro for junit execution | |||
-init-macrodef-debug: defines macro for class debugging | |||
-init-macrodef-java: defines macro for class execution | |||
-do-jar: JAR building | |||
run: execution of project | |||
-javadoc-build: Javadoc generation | |||
test-report: JUnit report generation | |||
An example of overriding the target for project execution could look like this: | |||
<target name="run" depends="Grafik2D-impl.jar"> | |||
<exec dir="bin" executable="launcher.exe"> | |||
<arg file="${dist.jar}"/> | |||
</exec> | |||
</target> | |||
Notice that the overridden target depends on the jar target and not only on | |||
the compile target as the regular run target does. Again, for a list of available | |||
properties which you can use, check the target you are overriding in the | |||
nbproject/build-impl.xml file. | |||
--> | |||
</project> |
@@ -0,0 +1,3 @@ | |||
Manifest-Version: 1.0 | |||
X-COMMENT: Main-Class will be added automatically by build | |||
@@ -0,0 +1,8 @@ | |||
build.xml.data.CRC32=fe85c51a | |||
build.xml.script.CRC32=7ff2741e | |||
build.xml.stylesheet.CRC32=8064a381@1.80.1.48 | |||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. | |||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. | |||
nbproject/build-impl.xml.data.CRC32=fe85c51a | |||
nbproject/build-impl.xml.script.CRC32=6b553dca | |||
nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 |
@@ -0,0 +1,74 @@ | |||
annotation.processing.enabled=true | |||
annotation.processing.enabled.in.editor=false | |||
annotation.processing.processor.options= | |||
annotation.processing.processors.list= | |||
annotation.processing.run.all.processors=true | |||
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output | |||
build.classes.dir=${build.dir}/classes | |||
build.classes.excludes=**/*.java,**/*.form | |||
# This directory is removed when the project is cleaned: | |||
build.dir=build | |||
build.generated.dir=${build.dir}/generated | |||
build.generated.sources.dir=${build.dir}/generated-sources | |||
# Only compile against the classpath explicitly listed here: | |||
build.sysclasspath=ignore | |||
build.test.classes.dir=${build.dir}/test/classes | |||
build.test.results.dir=${build.dir}/test/results | |||
# Uncomment to specify the preferred debugger connection transport: | |||
#debug.transport=dt_socket | |||
debug.classpath=\ | |||
${run.classpath} | |||
debug.test.classpath=\ | |||
${run.test.classpath} | |||
# Files in build.classes.dir which should be excluded from distribution jar | |||
dist.archive.excludes= | |||
# This directory is removed when the project is cleaned: | |||
dist.dir=dist | |||
dist.jar=${dist.dir}/Grafik2D.jar | |||
dist.javadoc.dir=${dist.dir}/javadoc | |||
excludes= | |||
includes=** | |||
jar.compress=false | |||
javac.classpath= | |||
# Space-separated list of extra javac options | |||
javac.compilerargs= | |||
javac.deprecation=false | |||
javac.external.vm=true | |||
javac.processorpath=\ | |||
${javac.classpath} | |||
javac.source=1.8 | |||
javac.target=1.8 | |||
javac.test.classpath=\ | |||
${javac.classpath}:\ | |||
${build.classes.dir} | |||
javac.test.processorpath=\ | |||
${javac.test.classpath} | |||
javadoc.additionalparam= | |||
javadoc.author=false | |||
javadoc.encoding=${source.encoding} | |||
javadoc.noindex=false | |||
javadoc.nonavbar=false | |||
javadoc.notree=false | |||
javadoc.private=false | |||
javadoc.splitindex=true | |||
javadoc.use=true | |||
javadoc.version=false | |||
javadoc.windowtitle= | |||
main.class=grafik2d.Start | |||
manifest.file=manifest.mf | |||
meta.inf.dir=${src.dir}/META-INF | |||
mkdist.disabled=false | |||
platform.active=default_platform | |||
run.classpath=\ | |||
${javac.classpath}:\ | |||
${build.classes.dir} | |||
# Space-separated list of JVM arguments used when running the project. | |||
# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. | |||
# To set system properties for unit tests define test-sys-prop.name=value: | |||
run.jvmargs= | |||
run.test.classpath=\ | |||
${javac.test.classpath}:\ | |||
${build.test.classes.dir} | |||
source.encoding=UTF-8 | |||
src.dir=src | |||
test.src.dir=test |
@@ -0,0 +1,15 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<project xmlns="http://www.netbeans.org/ns/project/1"> | |||
<type>org.netbeans.modules.java.j2seproject</type> | |||
<configuration> | |||
<data xmlns="http://www.netbeans.org/ns/j2se-project/3"> | |||
<name>Grafik2D</name> | |||
<source-roots> | |||
<root id="src.dir"/> | |||
</source-roots> | |||
<test-roots> | |||
<root id="test.src.dir"/> | |||
</test-roots> | |||
</data> | |||
</configuration> | |||
</project> |
@@ -0,0 +1,121 @@ | |||
/* | |||
* To change this license header, choose License Headers in Project Properties. | |||
* To change this template file, choose Tools | Templates | |||
* and open the template in the editor. | |||
*/ | |||
package grafik2d; | |||
/** | |||
* | |||
* @author nobody | |||
*/ | |||
import java.awt.BasicStroke; | |||
import java.awt.Color; | |||
import java.awt.Graphics; | |||
import java.awt.Graphics2D; | |||
import java.awt.RenderingHints; | |||
import java.awt.geom.AffineTransform; | |||
import java.awt.geom.Ellipse2D; | |||
import java.awt.geom.Line2D; | |||
import java.util.logging.Logger; | |||
import javax.swing.JComponent; | |||
/** | |||
* | |||
* @author le | |||
*/ | |||
public class Gerade extends JComponent implements Runnable | |||
{ | |||
private Ellipse2D.Float Kreis; | |||
private Line2D.Float Gerade; | |||
private BasicStroke pinsel; | |||
private float radius; | |||
private Thread thd; | |||
private long schlafzeit; | |||
private static final float DICKE = 2f; | |||
private static Logger lg = Logger.getLogger("grafik"); | |||
private static float xmittel,ymittel; | |||
private AffineTransform at; | |||
public Gerade(long schlafzeit, int zeit) | |||
{ | |||
this.schlafzeit = schlafzeit; | |||
Kreis = new Ellipse2D.Float(); | |||
pinsel = new BasicStroke(DICKE); | |||
radius = 100; | |||
Gerade = new Line2D.Float(); | |||
thd = null; | |||
this.at = new AffineTransform(); | |||
} | |||
public void start() | |||
{ | |||
if (thd == null) | |||
{ | |||
thd = new Thread(this); | |||
thd.start(); | |||
} | |||
} | |||
@Override | |||
public void paintComponent(Graphics g) | |||
{ | |||
super.paintComponent(g); | |||
Graphics2D g2 = (Graphics2D)g; | |||
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, | |||
RenderingHints.VALUE_ANTIALIAS_ON); | |||
int breite = this.getWidth() - 1; | |||
int hoehe = this.getHeight() - 1; | |||
//maxRadius = -DICKE/2f + Math.min(breite/2f, hoehe/2f); | |||
float x = breite/2f - radius; | |||
float y = hoehe/2f - radius; | |||
xmittel = x+radius; | |||
ymittel = y+radius; | |||
g2.setTransform(this.at); | |||
Kreis.setFrame(x, y, radius*2, radius*2); | |||
Gerade.setLine(xmittel, ymittel, xmittel -radius, ymittel); | |||
g2.setStroke(pinsel); | |||
g2.setPaint(Color.BLACK); | |||
g2.draw(Kreis); | |||
g2.draw(Gerade); | |||
} | |||
@Override | |||
public void run() | |||
{ | |||
float delta = 0f; | |||
while (true) | |||
{ | |||
this.at.rotate(Math.toRadians(0.06),xmittel, ymittel); | |||
System.out.println(delta); | |||
this.repaint(); | |||
try | |||
{ | |||
Thread.sleep(schlafzeit); | |||
} | |||
catch (InterruptedException iex) | |||
{ | |||
lg.warning(iex.toString()); | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,117 @@ | |||
/* | |||
* To change this license header, choose License Headers in Project Properties. | |||
* To change this template file, choose Tools | Templates | |||
* and open the template in the editor. | |||
*/ | |||
package grafik2d; | |||
/** | |||
* | |||
* @author nobody | |||
*/ | |||
import java.awt.BasicStroke; | |||
import java.awt.Color; | |||
import java.awt.Graphics; | |||
import java.awt.Graphics2D; | |||
import java.awt.RenderingHints; | |||
import java.awt.geom.Ellipse2D; | |||
import java.awt.geom.Line2D; | |||
import java.util.logging.Logger; | |||
import javax.swing.JComponent; | |||
/** | |||
* | |||
* @author le | |||
*/ | |||
public class Gerademitsincos extends JComponent implements Runnable | |||
{ | |||
private Ellipse2D.Float Kreis; | |||
private Line2D.Float Gerade; | |||
private BasicStroke pinsel; | |||
private float radius; | |||
private Thread thd; | |||
private long schlafzeit; | |||
private static final float DICKE = 2f; | |||
private static Logger lg = Logger.getLogger("grafik"); | |||
private static float xmittel,ymittel; | |||
private float deltax, deltay; | |||
public Gerademitsincos(long schlafzeit, int zeit) | |||
{ | |||
this.schlafzeit = schlafzeit; | |||
Kreis = new Ellipse2D.Float(); | |||
pinsel = new BasicStroke(DICKE); | |||
radius = 100; | |||
Gerade = new Line2D.Float(); | |||
deltax = 0; | |||
deltay = 0; | |||
thd = null; | |||
} | |||
public void start() | |||
{ | |||
if (thd == null) | |||
{ | |||
thd = new Thread(this); | |||
thd.start(); | |||
} | |||
} | |||
@Override | |||
public void paintComponent(Graphics g) | |||
{ | |||
super.paintComponent(g); | |||
Graphics2D g2 = (Graphics2D)g; | |||
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, | |||
RenderingHints.VALUE_ANTIALIAS_ON); | |||
int breite = this.getWidth() - 1; | |||
int hoehe = this.getHeight() - 1; | |||
//maxRadius = -DICKE/2f + Math.min(breite/2f, hoehe/2f); | |||
float x = breite/2f - radius; | |||
float y = hoehe/2f - radius; | |||
xmittel = x+radius; | |||
ymittel = y+radius; | |||
Kreis.setFrame(x, y, radius*2, radius*2); | |||
Gerade.setLine(xmittel, ymittel, xmittel -deltax, ymittel -deltay); | |||
g2.setStroke(pinsel); | |||
g2.setPaint(Color.BLACK); | |||
g2.draw(Kreis); | |||
g2.draw(Gerade); | |||
} | |||
@Override | |||
public void run() | |||
{ | |||
float delta = 0f; | |||
while (true) | |||
{ | |||
deltax = (float) (radius * Math.sin(Math.toRadians(delta))); | |||
deltay = (float) (radius * Math.cos(Math.toRadians(delta))); | |||
delta -= 6f; | |||
System.out.println(delta); | |||
this.repaint(); | |||
try | |||
{ | |||
Thread.sleep(schlafzeit); | |||
} | |||
catch (InterruptedException iex) | |||
{ | |||
lg.warning(iex.toString()); | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,107 @@ | |||
/* | |||
* To change this license header, choose License Headers in Project Properties. | |||
* To change this template file, choose Tools | Templates | |||
* and open the template in the editor. | |||
*/ | |||
package grafik2d; | |||
/** | |||
* | |||
* @author nobody | |||
*/ | |||
import java.awt.BasicStroke; | |||
import java.awt.Color; | |||
import java.awt.Graphics; | |||
import java.awt.Graphics2D; | |||
import java.awt.RenderingHints; | |||
import java.awt.geom.Ellipse2D; | |||
import java.util.logging.Logger; | |||
import javax.swing.JComponent; | |||
/** | |||
* | |||
* @author le | |||
*/ | |||
public class Kreis extends JComponent implements Runnable | |||
{ | |||
private Ellipse2D.Float kreis; | |||
private BasicStroke pinsel; | |||
private float radius; | |||
private float minRadius; | |||
private float maxRadius; | |||
private Thread thd; | |||
private long schlafzeit; | |||
private static final float DICKE = 8f; | |||
private static Logger lg = Logger.getLogger("grafik"); | |||
public Kreis(long schlafzeit) | |||
{ | |||
this.schlafzeit = schlafzeit; | |||
minRadius = DICKE; | |||
maxRadius = 100; | |||
kreis = new Ellipse2D.Float(); | |||
pinsel = new BasicStroke(DICKE); | |||
radius = 10; | |||
thd = null; | |||
} | |||
public void start() | |||
{ | |||
if (thd == null) | |||
{ | |||
thd = new Thread(this); | |||
thd.start(); | |||
} | |||
} | |||
@Override | |||
public void paintComponent(Graphics g) | |||
{ | |||
super.paintComponent(g); | |||
Graphics2D g2 = (Graphics2D)g; | |||
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, | |||
RenderingHints.VALUE_ANTIALIAS_ON); | |||
int breite = this.getWidth() - 1; | |||
int hoehe = this.getHeight() - 1; | |||
maxRadius = -DICKE/2f + Math.min(breite/2f, hoehe/2f); | |||
float x = breite/2f - radius; | |||
float y = hoehe/2f - radius; | |||
kreis.setFrame(x, y, radius*2, radius*2); | |||
g2.setStroke(pinsel); | |||
// g2.setPaint(Color.RED); | |||
// g2.fill(kreis); | |||
g2.setPaint(Color.BLACK); | |||
g2.draw(kreis); | |||
} | |||
@Override | |||
public void run() | |||
{ | |||
float delta = 1f; | |||
while (true) | |||
{ | |||
if (radius > maxRadius) delta = -1f; | |||
if (radius < minRadius) delta = +1f; | |||
radius += delta; | |||
this.repaint(); | |||
try | |||
{ | |||
Thread.sleep(schlafzeit); | |||
} | |||
catch (InterruptedException iex) | |||
{ | |||
lg.warning(iex.toString()); | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,59 @@ | |||
/* | |||
* To change this license header, choose License Headers in Project Properties. | |||
* To change this template file, choose Tools | Templates | |||
* and open the template in the editor. | |||
*/ | |||
package grafik2d; | |||
import java.awt.Color; | |||
import java.awt.Container; | |||
import javax.swing.JFrame; | |||
import javax.swing.OverlayLayout; | |||
import javax.swing.WindowConstants; | |||
/** | |||
* Builder Class | |||
* @author le | |||
*/ | |||
public class Start | |||
{ | |||
public int zeitinput = 12; | |||
public Start() | |||
{ | |||
JFrame frm = new JFrame(); | |||
Container c = frm.getContentPane(); | |||
c.setLayout(new OverlayLayout(c)); | |||
c.setBackground(Color.WHITE); | |||
frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); | |||
Gerade leinwand = new Gerade(10,zeitinput); | |||
c.add(leinwand); | |||
leinwand.start(); | |||
/* | |||
for (int i = 0; i < 100; i++) | |||
{ | |||
double zufall = Math.random(); | |||
long schlafzeit = (long)(1 + 100*zufall); | |||
Kreis leinwand = new Kreis(schlafzeit); | |||
leinwand.setOpaque(false); | |||
c.add(leinwand); | |||
leinwand.start(); | |||
} | |||
*/ | |||
frm.setSize(600, 400); | |||
frm.setVisible(true); | |||
} | |||
/** | |||
* @param args the command line arguments | |||
*/ | |||
public static void main(String[] args) | |||
{ | |||
new Start(); | |||
} | |||
} |
@@ -0,0 +1,59 @@ | |||
/* | |||
* To change this license header, choose License Headers in Project Properties. | |||
* To change this template file, choose Tools | Templates | |||
* and open the template in the editor. | |||
*/ | |||
package grafik2d; | |||
/** | |||
* | |||
* @author nobody | |||
*/ | |||
import java.awt.BasicStroke; | |||
import java.awt.Color; | |||
import java.awt.Graphics; | |||
import java.awt.Graphics2D; | |||
import java.awt.RenderingHints; | |||
import java.awt.geom.Ellipse2D; | |||
import javax.swing.JComponent; | |||
/** | |||
* | |||
* @author le | |||
*/ | |||
public class Zeichenflaeche extends JComponent // JPanel | |||
{ | |||
private Ellipse2D.Float ellipse; | |||
private BasicStroke pinsel; | |||
private static final float DICKE = 30f; | |||
public Zeichenflaeche() | |||
{ | |||
ellipse = new Ellipse2D.Float(); | |||
pinsel = new BasicStroke(DICKE); | |||
} | |||
@Override | |||
public void paintComponent(Graphics g) | |||
{ | |||
super.paintComponent(g); | |||
Graphics2D g2 = (Graphics2D)g; | |||
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, | |||
RenderingHints.VALUE_ANTIALIAS_ON); | |||
int breite = this.getWidth() - 1; | |||
int hoehe = this.getHeight() - 1; | |||
ellipse.setFrame(DICKE/2, DICKE/2, breite-DICKE, hoehe-DICKE); | |||
g2.setStroke(pinsel); | |||
g2.setPaint(Color.RED); | |||
g2.fill(ellipse); | |||
g2.setPaint(Color.BLACK); | |||
g2.draw(ellipse); | |||
} | |||
} |