<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2F2D_Graphics%2FGraphic_Path</id>
		<title>Java Tutorial/2D Graphics/Graphic Path - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2F2D_Graphics%2FGraphic_Path"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Graphic_Path&amp;action=history"/>
		<updated>2026-04-25T03:18:56Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Graphic_Path&amp;diff=3486&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Graphic_Path&amp;diff=3486&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Graphic_Path&amp;diff=3487&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/Graphic_Path&amp;diff=3487&amp;oldid=prev"/>
				<updated>2010-05-31T15:25:05Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Bezier Lab ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Frame;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.MouseListener;&lt;br /&gt;
import java.awt.event.MouseMotionListener;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.awt.geom.GeneralPath;&lt;br /&gt;
public class BezLab extends Frame implements MouseListener, MouseMotionListener {&lt;br /&gt;
  private int[] xs = { 75, 150, 300, 375 };&lt;br /&gt;
  private int[] ys = { 250, 100, 350, 250 };&lt;br /&gt;
  private int dragIndex = NOT_DRAGGING;&lt;br /&gt;
  private final static int NEIGHBORHOOD = 15;&lt;br /&gt;
  private final static int NOT_DRAGGING = -1;&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    (new BezLab()).setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  BezLab() {&lt;br /&gt;
    setSize(500, 450);&lt;br /&gt;
    addMouseListener(this);&lt;br /&gt;
    addMouseMotionListener(this);&lt;br /&gt;
    addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  public void paint(Graphics g) {&lt;br /&gt;
    for (int i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;
      if (i == 0 || i == 3)&lt;br /&gt;
        g.setColor(Color.blue);&lt;br /&gt;
      else&lt;br /&gt;
        g.setColor(Color.cyan);&lt;br /&gt;
      g.fillOval(xs[i] - 6, ys[i] - 6, 12, 12);&lt;br /&gt;
    }&lt;br /&gt;
    Graphics2D g2d = (Graphics2D) g;&lt;br /&gt;
    g2d.setColor(Color.black);&lt;br /&gt;
    GeneralPath path = new GeneralPath();&lt;br /&gt;
    path.moveTo(xs[0], ys[0]);&lt;br /&gt;
    path.curveTo(xs[1], ys[1], xs[2], ys[2], xs[3], ys[3]);&lt;br /&gt;
    g2d.draw(path);&lt;br /&gt;
  }&lt;br /&gt;
  public void mousePressed(MouseEvent e) {&lt;br /&gt;
    dragIndex = NOT_DRAGGING;&lt;br /&gt;
    int minDistance = Integer.MAX_VALUE;&lt;br /&gt;
    int indexOfClosestPoint = -1;&lt;br /&gt;
    for (int i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;
      int deltaX = xs[i] - e.getX();&lt;br /&gt;
      int deltaY = ys[i] - e.getY();&lt;br /&gt;
      int distance = (int) (Math.sqrt(deltaX * deltaX + deltaY * deltaY));&lt;br /&gt;
      if (distance &amp;lt; minDistance) {&lt;br /&gt;
        minDistance = distance;&lt;br /&gt;
        indexOfClosestPoint = i;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if (minDistance &amp;gt; NEIGHBORHOOD)&lt;br /&gt;
      return;&lt;br /&gt;
    dragIndex = indexOfClosestPoint;&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseReleased(MouseEvent e) {&lt;br /&gt;
    if (dragIndex == NOT_DRAGGING)&lt;br /&gt;
      return;&lt;br /&gt;
    xs[dragIndex] = e.getX();&lt;br /&gt;
    ys[dragIndex] = e.getY();&lt;br /&gt;
    dragIndex = NOT_DRAGGING;&lt;br /&gt;
    repaint();&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseDragged(MouseEvent e) {&lt;br /&gt;
    if (dragIndex == NOT_DRAGGING)&lt;br /&gt;
      return;&lt;br /&gt;
    xs[dragIndex] = e.getX();&lt;br /&gt;
    ys[dragIndex] = e.getY();&lt;br /&gt;
    repaint();&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseClicked(MouseEvent e) {&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseEntered(MouseEvent e) {&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseExited(MouseEvent e) {&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseMoved(MouseEvent e) {&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Complex Paths: Star ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.geom.GeneralPath;&lt;br /&gt;
import java.awt.geom.Point2D;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
class MyCanvas extends JComponent {&lt;br /&gt;
  public void paint(Graphics g) {&lt;br /&gt;
    Graphics2D g2D = (Graphics2D) g;&lt;br /&gt;
    Point2D.Float point = new Point2D.Float(100, 100);                     // store start point&lt;br /&gt;
    GeneralPath p = new GeneralPath(GeneralPath.WIND_NON_ZERO);&lt;br /&gt;
    p.moveTo(point.x, point.y);&lt;br /&gt;
    p.lineTo(point.x + 20.0f, point.y - 5.0f);           // Line from start to A&lt;br /&gt;
    point = (Point2D.Float)p.getCurrentPoint();&lt;br /&gt;
    p.lineTo(point.x + 5.0f, point.y - 20.0f);           // Line from A to B&lt;br /&gt;
    point = (Point2D.Float)p.getCurrentPoint();&lt;br /&gt;
    p.lineTo(point.x + 5.0f, point.y + 20.0f);           // Line from B to C&lt;br /&gt;
    point = (Point2D.Float)p.getCurrentPoint();&lt;br /&gt;
    p.lineTo(point.x + 20.0f, point.y + 5.0f);           // Line from C to D&lt;br /&gt;
    point = (Point2D.Float)p.getCurrentPoint();&lt;br /&gt;
    p.lineTo(point.x - 20.0f, point.y + 5.0f);           // Line from D to E&lt;br /&gt;
    point = (Point2D.Float)p.getCurrentPoint();&lt;br /&gt;
    p.lineTo(point.x - 5.0f, point.y + 20.0f);           // Line from E to F&lt;br /&gt;
    point = (Point2D.Float)p.getCurrentPoint();&lt;br /&gt;
    p.lineTo(point.x - 5.0f, point.y - 20.0f);           // Line from F to g&lt;br /&gt;
    p.closePath();                                       // Line from G to start&lt;br /&gt;
    g2D.draw(p);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class PaintStar {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    JFrame window = new JFrame();&lt;br /&gt;
    window.setBounds(30, 30, 300, 300);&lt;br /&gt;
    window.getContentPane().add(new MyCanvas());&lt;br /&gt;
    window.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>