17.1 pencil tool: Is old "option/alt" function still available.

Ok, the pencil tool has changed. That's great, but what if you really liked the the way it worked before? If I just want to "smooth" out a line a little, I used to hold "option" while tracing the line. AI would reduce the number of anchor point, while keeping the relative position of the line. Can I still do that? How?
Ok, here's the explanation:
http://helpx.adobe.com/illustrator/using/enhanced-pencil-tool.html
The "smooth tool" is now a separate tool. Thanks, Adobe! (not really). Why not leave "Alt/Option" for Smooth and access the "Straight line" feature with something else? Is this REALLY what your beta testers asked for? I can't believe it.

I had stopped using the Pencil & Pen Tools in Illustrator a long time ago. Instead, I use Dynamic Sketch & InkScribe Tool respectively to do the kind of work I am paid for by my clients. Since I started using these tools from Astute, my productivity has gone up leaps and bounds. And I have recovered the little money I paid for these tools within a week of my purchase. And whatever I am now earning is just a bonus.
These tools are really game changers. It makes vector building far easier, fun and more intuitive than Adobe's own unimaginative & clunky tools.
I use the Dynamic Sketch tool to create fluid shapes and get a lot of control over how I build them. Since the paths that are drawn are dynamic in nature, I can always select them and dial-in different values for the Smoothness and Accuracy of the path. The fun part is that I can actually use my Wacom Intuos tablet to draw using the various Pressure settings. The paths that I draw could have the Variable Width applied automatically to them as I draw, along with the Pressure settings. This, as you know, is not possible with the Pencil Tool (even now the New Pencil Tool - strange name?!) does not provide.
The InkScribe Tool is a smart, elegant & permanent replacement for the clunky Pen Tool - why do you need four tools (Pen, Add Anchor Point, Remove Anchor Point, Convert Anchor Point) when you can get all in one elegant tool. Even after so many years, Illustrator's own Pen Tool does not give me the 'Rubberband' functionality. It does not give me the 'Smart Delete' of anchor points with which I can simply delete extra unneeded anchor points without affecting my vector shapes. It does not give me the ability to 'lengthen just one handle' of a Smooth point without affecting the other handle (both its length and its angle). It does not give me the facility to add anchor points only at the 'tangencies' of a path. It does not give me the ability to change from Smooth to Corner (or Cusp) and vice-versa WITHOUT modifying the segments. And so much more.
Your time, effort and creativity are of essence in this demanding & changing world and one can't afford wasting them, dealing with Illustrator's own silly and short-sighted tools and trying to find one's way in the maze. I would much rather spend that time to create beautiul art in less than a quarter of the time, using competitive offerings.

Similar Messages

  • In CS4 the Pencil tool does not maintain a Fill when drawing?

    In Ai CS4, how can I get the Fill color to maintain its fill when I draw with the pencil tool? The Fill color disappears and defaults to No Fill every time I draw with the pencil tool therefore I’m unable to see what I’ve drawn. CS1 did not work this way as it retained any Fill or Stroke previously assigned.

    Looks like two things have changed in CS4. Double click the Pencil tool and check the box that says Fill new pencil strokes. Then make a new rectangle filled with color you want and Option(Alt)-drag it to the top-left most box in the Graphic Styles panel to set a new default for this document. Finally in the Appearance panel flyout make sure New Art Has Basic Appearance is checked.

  • The variety tools within the type tool, rectangle tool, pencil tool, etc. etc are not opening in my CS4 Illustrator

    I recently re-installed my CS4 and am trying to reacquaint myself with the various applications.
    Where I was previously able to access the various tool options, i.e. under the Text Tool, Rectangle Tool, Pencil Tool, etc. they are not opening now.
    Any suggestions out there as to what could be the problem?
    Thanx.
    Illustrator

    Bergi4roses,
    Are you saying that they do not fly out when you ClickHold hovering over the main tools (that is the Illy way)?
    If that be the case, you may start looking at the list, maybe going straight to 6).
    The following is a general list of things you may try when the issue is not in a specific file (you may have tried/done some of them already); 1) and 2) are the easy ones for temporary strangenesses, and 3) and 4) are specifically aimed at possibly corrupt preferences); 5) is a list in itself, and 6) is the last resort.
    1) Close down Illy and open again;
    2) Restart the computer (you may do that up to 3 times);
    3) Close down Illy and press Ctrl+Alt+Shift/Cmd+Option+Shift during startup (easy but irreversible);
    4) Move the folder (follow the link with that name) with Illy closed (more tedious but also more thorough and reversible);
    5) Look through and try out the relevant among the Other options (follow the link with that name, Item 7) is a list of usual suspects among other applications that may disturb and confuse Illy, Item 15) applies to CC, CS6, and maybe CS5);
    Even more seriously, you may:
    6) Uninstall, run the Cleaner Tool (if you have CS3/CS4/CS5/CS6/CC), and reinstall.
    http://www.adobe.com/support/contact/cscleanertool.html

  • How do I turn off color swapping when I left click the mouse button twice in Pencil Tool?

    I'm annoyed by the fact that the primary and secondary colors are swapped when I click the left mouse button twice in succession when using the Pencil tool. Is there a way to disable this feature, and possibly get back the old feature where left mouse button is the primary color, right mouse button is the secondary color?
    If not, what hotkey combination should I use that stops the colors from being swapped whenever I'm drawing using the Pencil tool? Thanks in advance.

    That be caused by having Auto Erase checked in the tool options bar for the pencil tool.

  • Programming a Pencil Tool on Paint?

    Here's my code for Scribble(a pencil tool) and its superclass Shape. Basically, my program remembers where the mouse has been and draws a line from the previous point to the current point. However, the scribble doesn't show up (occasionally you will see a small line at the very end) I think the problem is that each Scribble object only has one previous and one current. Therefore, there is only 1 line left at the end. How can I correct this?
    Thanks in advance!
    Note: this doesn't run since there are about 5 other classes needed. I guess can post them if you want? xD
    import java.awt.*;
    public class Scribble extends Shape{
         protected Point startpt, endpt;
         protected Point previous, current;
         int count = 0;
        public Scribble(Point start, DrawingCanvas dcanvas){
         super();
         System.out.println("SCRIBBLE CREATED!!!!!!!\n\n");
         startpt = start;
         current = start;
         endpt = start;
         canvas = dcanvas;
         bounds = new Rectangle(start);
        public void resize(Point anchor, Point end){
         super.resize(anchor, end);
         previous = current;
         startpt = anchor;
         current = end;
         endpt = end;
        public void translate(int dx, int dy){
         super.translate(dx, dy);
         previous.translate(dx, dy);
         current.translate(dx, dy);
         startpt.translate(dx, dy);
         endpt.translate(dx, dy);
        public void draw(Graphics g, Rectangle regionToDraw){
              count++;
              System.out.println(count);
         if (!bounds.intersects(regionToDraw)){
             return;
         g.setColor(super.getColor());
         g.drawLine((int)previous.getX(), (int)previous.getY(), (int)current.getX(), (int)current.getY());
         if (isSelected) { // if selected, draw the resizing knobs
                           // along the 4 corners
             Rectangle[] knobs = getKnobRects();
             for (int i = 0; i < knobs.length; i++)
              g.fillRect(knobs.x, knobs[i].y,
                   knobs[i].width, knobs[i].height);
    protected Rectangle[] getKnobRects(){
         Rectangle[] knobs = new Rectangle[2];
         knobs[0] = new Rectangle((int)startpt.getX() - KNOB_SIZE/2,
                        (int)startpt.getY() - KNOB_SIZE/2, KNOB_SIZE, KNOB_SIZE);
         knobs[1] = new Rectangle((int)endpt.getX() - KNOB_SIZE/2,
                        (int)endpt.getY()- KNOB_SIZE/2, KNOB_SIZE, KNOB_SIZE);
         return knobs;
    protected int getKnobContainingPoint(Point pt){
         if (!isSelected) return NONE;
         Rectangle[] knobs = getKnobRects();
         for (int i = 0; i < knobs.length; i++)
         if (knobs[i].contains(pt))
              return i;
         return NONE;
    }import java.awt.*;
    import java.util.*;
    import java.io.*;
    public abstract class Shape implements Serializable, Cloneable{
         private Color color;
    protected Rectangle bounds;
    protected boolean isSelected;
    public DrawingCanvas canvas;
    protected static final int KNOB_SIZE = 6;
    protected static final int NONE = -1;
    protected static final int NW = 0;
    protected static final int SW = 1;
    protected static final int SE = 2;
    protected static final int NE = 3;
         Shape(){
              color = Color.darkGray;
         public Color getColor(){
         return color;
         public Object clone(){
              try{
              Shape copy = (Shape)super.clone();
              copy.setBounds(bounds);
              return copy;
              catch(CloneNotSupportedException c){
                   return null;
         public void setColor(Color newColor){
         color = newColor;
         canvas.repaint();
         /** The "primitive" for all resizing/moving/creating operations that
         * affect the rect bounding box. The current implementation just resets
         * the bounds variable and triggers a re-draw of the union of the old &
         * new rectangles. This will redraw the shape in new size and place and
         * also "erase" if bounds are now smaller than before.
         protected void setBounds(Rectangle newBounds){
              Rectangle oldBounds = bounds;
              bounds = newBounds;
              updateCanvas(oldBounds.union(bounds));
         /** The resize operation is called when first creating a rect, as well as
         * when later resizing by dragging one of its knobs. The two parameters
         * are the points that define the new bounding box. The anchor point
         * is the location of the mouse-down event during a creation operation
         * or the opposite corner of the knob being dragged during a resize
         * operation. The end is the current location of the mouse.
         public void resize(Point anchor, Point end){
              Rectangle newRect = new Rectangle(anchor);
              // creates smallest rectange which
              // includes both anchor & end
              newRect.add(end);
              // reset bounds & redraw affected areas
              setBounds(newRect);
              canvas.repaint();
         /** The translate operation is called when moving a shape by dragging in
         * the canvas. The two parameters are the delta-x and delta-y to move
         * by. Note that either or both can be negative. Create a new rectangle
         * from our bounds and translate and then go through the setBounds()
         * primitive to change it.
         public void translate(int dx, int dy){
              Rectangle newRect = new Rectangle(bounds);
              newRect.translate(dx, dy);
              setBounds(newRect);
              canvas.repaint();
         /** Used to change the selected state of the shape which will require
         * updating the affected area of the canvas to add/remove knobs.
         public void setSelected(boolean newState){
              isSelected = newState;
              // need to erase/add knobs
              // including extent of extended bounds
              updateCanvas(bounds, true);
              canvas.repaint();
         /** The updateCanvas() methods are used when the state has changed
         * in such a way that it needs to be refreshed in the canvas to properly
         * reflect the new settings. The shape should take responsibility for
         * messaging the canvas to properly update itself. The appropriate AWT/JFC
         * way to re-draw a component is to send it the repaint() method with the
         * rectangle that needs refreshing. This will cause an update() event to
         * be sent to the component which in turn will call paint(), where the
         * real drawing implementation goes. See the paint() method in
         * DrawingCanvas to see how it is implemented.
         protected void updateCanvas(Rectangle areaOfChange, boolean enlargeForKnobs){
                   System.out.println("canvas2 updated");
              Rectangle toRedraw = new Rectangle(areaOfChange);
              if (enlargeForKnobs)
              toRedraw.grow(KNOB_SIZE/2, KNOB_SIZE/2);
              canvas.repaint(toRedraw);
         protected void updateCanvas(Rectangle areaOfChange){
                   System.out.println("canvas updated");
              updateCanvas(areaOfChange, isSelected);
              public Rectangle getBounds(){
                   return bounds;
         /** When the DrawingCanvas needs to determine which shape is under
         * the mouse, it asks the shape to determine if a point is "inside".
         * This method should returns true if the given point is inside the
         * region for this shape. For a rectangle, any point within the
         * bounding box is inside the shape.
         public boolean inside(Point pt){
              return bounds.contains(pt);
         /** When needed, we create the array of knob rectangles on demand. This
         * does mean we create and discard the array and rectangles repeatedly.
         * These are small objects, so perhaps it is not a big deal, but
         * a valid alternative would be to store the array of knobs as an
         * instance variable of the Shape and and update the knobs as the bounds
         * change. This means a little more memory overhead for each Shape
         * (since it is always storing the knobs, even when not being used) and
         * having that redundant data opens up the possibility of bugs from
         * getting out of synch (bounds move but knobs didn't, etc.) but you may
         * find that a more appealing way to go. Either way is fine with us.
         * Note this method provides a nice unified place for one override from
         * a shape subclass to substitute fewer or different knobs.
         protected Rectangle[] getKnobRects(){
                   System.out.println("knobs gotten");
              Rectangle[] knobs = new Rectangle[4];
              knobs[NW] = new Rectangle(bounds.x - KNOB_SIZE/2,
                             bounds.y - KNOB_SIZE/2, KNOB_SIZE, KNOB_SIZE);
              knobs[SW] = new Rectangle(bounds.x - KNOB_SIZE/2,
                             bounds.y + bounds.height - KNOB_SIZE/2,
                             KNOB_SIZE, KNOB_SIZE);
              knobs[SE] = new Rectangle(bounds.x + bounds.width - KNOB_SIZE/2,
                             bounds.y + bounds.height - KNOB_SIZE/2,
                             KNOB_SIZE, KNOB_SIZE);
              knobs[NE] = new Rectangle(bounds.x + bounds.width - KNOB_SIZE/2,
                             bounds.y - KNOB_SIZE/2,
                             KNOB_SIZE, KNOB_SIZE);
              return knobs;
         /** Helper method to determine if a point is within one of the resize
         * corner knobs. If not selected, we have no resize knobs, so it can't
         * have been a click on one. Otherwise, we calculate the knob rects and
         * then check whether the point falls in one of them. The return value
         * is one of NW, NE, SW, SE constants depending on which knob is found,
         * or NONE if the click doesn't fall within any knob.
         protected int getKnobContainingPoint(Point pt){
                   System.out.println("resize knobs");
              // if we aren't selected, the knobs
              // aren't showing and thus there are no knobs to check
              if (!isSelected) return NONE;
              Rectangle[] knobs = getKnobRects();
              for (int i = 0; i < knobs.length; i++)
              if (knobs[i].contains(pt))
                   return i;
              return NONE;
         /** Method used by DrawingCanvas to determine if a mouse click is starting
         * a resize event. In order for it to be a resize, the click must have
         * been within one of the knob rects (checked by the helper method
         * getKnobContainingPoint) and if so, we return the "anchor" ie the knob
         * opposite this corner that will remain fixed as the user drags the
         * resizing knob of the other corner around. During the drag actions of a
         * resize, that fixed anchor point and the current mouse point will be
         * passed to the resize method, which will reset the bounds in response
         * to the movement. If the mouseLocation wasn't a click in a knob and
         * thus not the beginning of a resize event, null is returned.
    public Point getAnchorForResize(Point mouseLocation){
              System.out.println("is it a resize?");
    int whichKnob = getKnobContainingPoint(mouseLocation);
    if (whichKnob == NONE) // no resize knob is at this location
    return null;
    Rectangle[] knobs = getKnobRects();
    whichKnob = Math.abs(whichKnob - (int)(knobs.length / 2));
    return (new Point(knobs[whichKnob].x + knobs[whichKnob].width /2,
    knobs[whichKnob].y + knobs[whichKnob].height/2));
    public abstract void draw(Graphics g, Rectangle regionToDraw);

    line left at the end. How can I correct this?java.awt.Polygon (or Polygon2D)
    Here are a few of my thoughts
    #1 There is a Shape interface in core java already, as well as plenty of very useful shapes (Rectangle, Ellipse2D, Area). Shape has some really nice features like contains(...) and intersects(...). By creating a separate class for your Shape objects, you ensure that the two will be incompatible.
    #2 As tempting as it is, it is a bad idea to include a Color with a shape. What if you want it to have more than one Color? What if you want the insides of the shape to be filled by an Image? I just created and posted a class on the java forums called Renderable, which combines a java.awt.Shape with a java.awt.Paint.
    #3 Below is my PaintArea class. It "scribbles" on an Image. Maybe this will give you some ideas. To compile it, you will either have to find my MathUtils class (which I've posted here before) or reimplement the distance and angle methods. There is also a reference to WIndowUtilities... find that or remove it and put the PaintArea in a Frame and do setVisible(true)
    You are welcome to use and modify this code, but please don't change the package and please make sure that you add attribution if you submit this in an academic setting.
    * Created on Jun 15, 2005 by @author Tom Jacobs
    package tjacobs.ui.ex;
    import java.awt.image.BufferedImage;
    import java.awt.*;
    import java.awt.event.*;
    import java.beans.PropertyChangeEvent;
    import java.beans.PropertyChangeListener;
    import javax.swing.ImageIcon;
    import javax.swing.JComboBox;
    import javax.swing.JComponent;
    import javax.swing.JPanel;
    import javax.swing.JToolBar;
    import tjacobs.MathUtils;
    import tjacobs.ui.util.WindowUtilities;
    * PaintArea is a component that you can draw in similar to but
    * much simpler than the windows paint program.
    public class PaintArea extends JComponent {
         private static final long serialVersionUID = 0;
         BufferedImage mImg; //= new BufferedImage();
         int mBrushSize = 1;
         private boolean mSizeChanged = false;
         private Color mColor1, mColor2;
         static class PaintIcon extends ImageIcon {
              public static final long serialVersionUID = 0;
              int mSize;
              public PaintIcon(Image im, int size) {
                   super(im);
                   mSize = size;
         public PaintArea() {
              super();
              setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
              addComponentListener(new CListener());
              MListener ml = new MListener();
              addMouseListener(ml);
              addMouseMotionListener(ml);
              setBackground(Color.WHITE);
              setForeground(Color.BLACK);
         public void paintComponent(Graphics g) {
              if (mSizeChanged) {
                   handleResize();
              //g.drawImage(mImg, mImg.getWidth(), mImg.getHeight(), null);
              g.drawImage(mImg, 0, 0, null);
              //super.paintComponent(g);
              //System.out.println("Image = " + mImg);
              //System.out.println("Size: " + mImg.getWidth() + "," + mImg.getHeight());
         public void setBackground(Color c) {
              super.setBackground(c);
              if (mImg != null) {
                   Graphics g = mImg.getGraphics();
                   g.setColor(c);
                   g.fillRect(0, 0, mImg.getWidth(), mImg.getHeight());
                   g.dispose();
         public void setColor1(Color c) {
              mColor1 = c;
         public void setColor2(Color c) {
              mColor2 = c;
         public Color getColor1() {
              return mColor1;
         public Color getColor2() {
              return mColor2;
         class ToolBar extends JToolBar {
              private static final long serialVersionUID = 1L;
              ToolBar() {
                   final ColorButton fore = new ColorButton();
                   fore.setToolTipText("Foreground Color");
                   final ColorButton back = new ColorButton();
                   back.setToolTipText("Background Color");
                   JComboBox brushSize = new JComboBox();
                   //super.createImage(1, 1).;
                   FontMetrics fm = new FontMetrics(getFont()) {
                        private static final long serialVersionUID = 1L;};
                   //int ht = fm.getHeight();
                   int useheight = fm.getHeight() % 2 == 0 ? fm.getHeight() + 1 : fm.getHeight();
                   final BufferedImage im1 = new BufferedImage(useheight, useheight, BufferedImage.TYPE_INT_RGB);
                   Graphics g = im1.getGraphics();
                   g.setColor(Color.WHITE);
                   g.fillRect(0, 0, useheight, useheight);
                   g.setColor(Color.BLACK);
                   g.fillOval(useheight / 2, useheight / 2, 1, 1);
                   g.dispose();
                   //im1.setRGB(useheight / 2 + 1, useheight / 2 + 1, 0xFFFFFF);
                   final BufferedImage im2 = new BufferedImage(useheight, useheight, BufferedImage.TYPE_INT_RGB);
                   g = im2.getGraphics();
                   g.setColor(Color.WHITE);
                   g.fillRect(0, 0, useheight, useheight);
                   g.setColor(Color.BLACK);
                   g.fillOval(useheight / 2 - 1, useheight / 2 - 1, 3, 3);
                   g.dispose();
    //               im2.setRGB(useheight / 2 - 1, useheight / 2 - 1, 3, 3, new int[] {     0, 0xFFFFFF, 0,
    //                                                            0xFFFFFF, 0xFFFFFFF, 0xFFFFFF,
    //                                                            0, 0xFFFFFF, 0}, 0, 1);
                   final BufferedImage im3 = new BufferedImage(useheight, useheight, BufferedImage.TYPE_INT_RGB);
                   g = im3.getGraphics();
                   g.setColor(Color.WHITE);
                   g.fillRect(0, 0, useheight, useheight);
                   g.setColor(Color.BLACK);
                   g.fillOval(useheight / 2 - 2, useheight / 2 - 2, 5, 5);
                   g.dispose();
    //               im3.setRGB(useheight / 2 - 2, useheight / 2 - 2, 5, 5, new int[] {     0, 0, 0xFFFFFF, 0, 0, 
    //                                                            0, 0xFFFFFF, 0xFFFFFFF, 0xFFFFFF, 0,
    //                                                            0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF,
    //                                                            0, 0xFFFFFF, 0xFFFFFFF, 0xFFFFFF, 0,
    //                                                            0, 0, 0xFFFFFF, 0, 0}, 0, 1);
                   //JLabel l1 = new JLabel("1 pt", new ImageIcon(im1), JLabel.LEFT);
                   //JLabel l2 = new JLabel("3 pt", new ImageIcon(im2), JLabel.LEFT);
                   //JLabel l3 = new JLabel("5 pt", new ImageIcon(im3), JLabel.LEFT);
                   brushSize.addItem(new PaintIcon(im1, 1));
                   brushSize.addItem(new PaintIcon(im2, 3));
                   brushSize.addItem(new PaintIcon(im3, 5));
                   //brushSize.addItem("Other");
                   add(fore);
                   add(back);
                   add(brushSize);
                   PropertyChangeListener pl = new PropertyChangeListener() {
                        public void propertyChange(PropertyChangeEvent ev) {
                             Object src = ev.getSource();
                             if (src != fore && src != back) {
                                  return;
                             Color c = (Color) ev.getNewValue();
                             if (ev.getSource() == fore) {
                                  mColor1 = c;
                             else {
                                  mColor2 = c;
                   fore.addPropertyChangeListener("Color", pl);
                   back.addPropertyChangeListener("Color", pl);
                   fore.changeColor(Color.BLACK);
                   back.changeColor(Color.WHITE);
                   brushSize.addItemListener(new ItemListener() {
                        public void itemStateChanged(ItemEvent ev) {
                             System.out.println("ItemEvent");
                             if (ev.getID() == ItemEvent.DESELECTED) {
                                  return;
                             System.out.println("Selected");
                             Object o = ev.getItem();
                             mBrushSize = ((PaintIcon) o).mSize;
                   //Graphics g = im1.getGraphics();
                   //g.fillOval(0, 0, 1, 1);
                   //BufferedImage im1 = new BufferedImage();
                   //BufferedImage im1 = new BufferedImage();
         protected class MListener extends MouseAdapter implements MouseMotionListener {
              Point mLastPoint;
              public void mouseDragged(MouseEvent me) {
                   Graphics g = mImg.getGraphics();
                   if ((me.getModifiers() & InputEvent.BUTTON1_MASK) != 0) {
                        g.setColor(mColor1);
                   } else {
                        g.setColor(mColor2);
                   Point p = me.getPoint();
                   if (mLastPoint == null) {
                        g.fillOval(p.x - mBrushSize / 2, p.y - mBrushSize / 2, mBrushSize, mBrushSize);
                        //g.drawLine(p.x, p.y, p.x, p.y);
                   else {
                        g.drawLine(mLastPoint.x, mLastPoint.y, p.x, p.y);
                        //g.fillOval(p.x - mBrushSize / 2, p.y - mBrushSize / 2, mBrushSize, mBrushSize);
                        double angle = MathUtils.angle(mLastPoint, p);
                        if (angle < 0) {
                             angle += 2 * Math.PI;
                        @SuppressWarnings("unused")
                        double distance = MathUtils.distance(mLastPoint, p) * 1.5;
                        if (angle < Math.PI / 4 || angle > 7 * Math.PI / 4 || Math.abs(Math.PI - angle) < Math.PI / 4) {
                             for (int i = 0; i < mBrushSize / 2; i ++) {
                                  g.drawLine(mLastPoint.x, mLastPoint.y + i, p.x, p.y + i);
                                  g.drawLine(mLastPoint.x, mLastPoint.y - i, p.x, p.y - i);
    //                              System.out.println("y");
    //                              System.out.println("angle = " + angle / Math.PI * 180);
                        else {
                             for (int i = 0; i < mBrushSize / 2; i ++) {
                                  g.drawLine(mLastPoint.x + i, mLastPoint.y, p.x + i, p.y);
                                  g.drawLine(mLastPoint.x  - i, mLastPoint.y, p.x - i, p.y);
    //                              System.out.println("x");
    //                    System.out.println("new = " + PaintUtils.printPoint(p));
    //                    System.out.println("last = " + PaintUtils.printPoint(mLastPoint));
                        //System.out.println("distance = " + distance);
                        //Graphics2D g2 = (Graphics2D) g;
                        //g2.translate(mLastPoint.x + mBrushSize / 2, mLastPoint.y);
                        //g2.rotate(angle);
                        //g2.fillRect(0, 0, (int) Math.ceil(distance), mBrushSize);
                        //g2.rotate(-angle);
                        //g2.translate(-mLastPoint.x + mBrushSize / 2, -mLastPoint.y);
    //                    g.setColor(Color.RED);
    //                    g.drawRect(p.x, p.y, 1, 1);
                   mLastPoint = p;
                   g.dispose();
                   repaint();
              public void mouseMoved(MouseEvent me) {}
              public void mouseReleased(MouseEvent me) {
                   mLastPoint = null;
         private void handleResize() {
              Dimension size = getSize();
              mSizeChanged = false;
              if (mImg == null) {
                   mImg = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
                   Graphics g = mImg.getGraphics();
                   g.setColor(getBackground());
                   g.fillRect(0, 0, mImg.getWidth(), mImg.getHeight());
                   g.dispose();
              else {
                   int newWidth = Math.max(mImg.getWidth(),getWidth());
                   int newHeight = Math.max(mImg.getHeight(),getHeight());
                   if (newHeight == mImg.getHeight() && newWidth == mImg.getWidth()) {
                        return;
                   BufferedImage bi2 = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
                   Graphics g = bi2.getGraphics();
                   g.setColor(getBackground());
                   g.fillRect(0, 0, bi2.getWidth(), bi2.getHeight());
                   g.drawImage(mImg, mImg.getWidth(), mImg.getHeight(), null);
                   g.dispose();
                   mImg = bi2;
         public JToolBar getToolBar() {
              if (mToolBar == null) {
                   mToolBar = new ToolBar();
              return mToolBar;
         private ToolBar mToolBar;
         public static void main (String args[]) {
              PaintArea pa = new PaintArea();
              JPanel parent = new JPanel();
              parent.setLayout(new BorderLayout());
              parent.add(pa, BorderLayout.CENTER);
              pa.setPreferredSize(new Dimension(150, 150));
              parent.add(pa.getToolBar(), BorderLayout.NORTH);
              WindowUtilities.visualize(parent);
         protected class CListener extends ComponentAdapter {
              public void componentResized(ComponentEvent ce) {
                   mSizeChanged = true;
    }

  • How can I add to an existing path using the pencil tool?

    This probably seems like a rather elementary question, but
    whenever I draw a path using the pencil tool, reselect it,
    hover over the endpoint, and the click and drag to extend
    the line off into a different direction, Illustrator will often
    (but not always) erase the existing path and leave only the
    new one that I drew.
    To wit:
    In step 1 above, I draw a line with the Pencil tool.
    In step 2 above, I reselect the line from step 1, hover over the endpoint, and then continue to draw further.
    However, as can be seen in step 3, the line from step 1 disappears after I draw the new path.
    I am aware of the pencil setting, "Edit selected paths", and I have checked it to edit selected paths
    within 12 pixels for the above example. What I am doing in the above example, and what I
    want to do, is to be able to add more paths onto an existing one using the pencil tool,
    rather than have a completely new path being drawn every time I lift up my pen to finish
    drawing the previous path.
    I also realize that I can do this with the pen tool; but the pen tool is a more
    precise tool (and somewhat more cumbersome), and I prefer to have more
    of the rough-handed look from time to time.
    Finally, I also know that I can use the direct selection tool to select endpoints
    from two different paths and then join them using the join command;
    but this seems to be more trouble than it's worth in many cases, especially
    if I want to do it frequently for a more long and complicated line.
    Am I expecting too much out of Illustrator?
    Is my idea of how to use the existing tools wrong in this case?
    Is there some piece of knowledge I'm missing?
    I'm on Illustrator CS5, Mac OS X 10.6.8, using a Wacom Intuos4 tablet.
    However, I have confirmed the above on Illustrator CS4 for Mac as well.
    Any help or comments would be much appreciated.
    Jeff

    Thanks @rcraighead - the Live Paint process seems a bit overkill for simply adding
    a new path onto an existing pencil path, but I did try the first idea you suggested,
    which was tracing a bit over the last part of the existing path and then continuing
    on to extend the path. It's a bit imprecise because the existing path gets slightly
    modified, but it seems to work pretty well all in all. Nice idea indeed - thanks a million.
    I also found that in AI CS5, I can use the selection tool to select all of the paths
    in this case and then join them using the join command. I thought I needed to
    select individual anchor points for this to work, but it actually works really
    well, better than I thought. I seem to recall that previous versions of Illustrator
    were a lot more picky with the Join command, but then again this might just
    have been my lack of understanding.
    I'm curious to know what other solutions to the above problem that other users
    might have, so I will leave this question unanswered for a bit...
    but I will use your initial technique described - it seems to work
    pretty well, in absence of other options Many thanks again for your timely help.
    Jeff

  • How do I change the pencil tool to smooth or ink in CC?

    In most other versions of flash that I'm aware of, you could change the settings on the pencil tool to smooth or ink, rather than straighten, which straightens out all of your lines and puts in fun corners and makes shapes into rectangles for you.
    In CC though, I couldn't find where to change this?
    Can you even do this, and if so, how?

    These options are available in Flash CC as well. If you can't see them at the bottom of your tools panel, they might be getting cut due to a smaller screen size. Try expanding the tools panel to double column or just undock it and check again.
    Let me know if you still can't find them.
    -Nipun

  • The pencil tool is not working correctly

    I've been making my drawing with the pencil tool obviously. After I make a stroke, I continue it with the last anchor point. But sometimes when I do that, the previous stroke disappears completley. Why is that?

    That's because Illustrator has got a pretty lame understanding about what should happen when you continue a path in certain angles while the Modify selected paths option is turned on inside the Pencil Tool options.
    You can disable that option but I can imagine that this is not what you're really looking for.

  • Acrobat 9.0 Pencil tool

    I used to be able to control the shape of the pencil tool with a right-click option. Now, I can only change the color and the opacity, the option for fine tip is gone
    Do you have any advice?
    Thanks
    April

    You can still change the tip weight of the pencil. The best way to do this is use the Pen tool as usual, then select the scribble you just created with the pencil tool and right click and choose properties. You can now edit the tip weight and set changes as default if required. Hope that helps? 

  • Question about Pencil Tool properties

    hi,
    i need to know this option in pencil tool properties &
    difference about them :
    Scale ( Normal - Horizontal - Vertical & None )
    Cap ( None & Square )
    thanks inadvance

    AlMostabed wrote:
    > up :)
    open flash - Help - search "Stroke Hinting"
    with the ""
    read technote
    Using the Stroke Color and Fill Color controls in the
    Property inspector
    To see difference you will need to adjust the size to larger,
    like 8 to 10 pixels.
    Than you will see differences in setting
    Regards
    Urami
    Happy New Year guys - all the best there is in the 2006 :)
    <urami>
    http://www.Flashfugitive.com
    </urami>
    <web junk free>
    http://www.firefox.com
    </web junk free>

  • Prevent pencil tool from closing paths in illustrator cc

    How do I prevent for the pencil tool from closing my path when I'm drawing. It used to be that you hold the option key to make it close a path. But now it closes the path automatically and it's very annoying because I don't want all the paths to close. For example, if you are drawing a small semi circle, the tool as soon as it feels it's close to the beginning  point it will close it automatically. I'm trying to find and option or a button to press to prevent it from doing this.

    Hey Kris thanks for your reply, but the semi circle example was just to illustrate the problem.  I use the pencil to sketch a lot, so it's not necessarily semi circles but any object, doodle or whatever you are drawing. As soon as you get close to your starting point, illustrator feels the need to close that path. Wether I want to close it or not. I think you just pointed out the big issue here. Now, since it's decided to close a path, I have to add extra steps to get what I want. And if you are drawing many, many similar objects, it becomes impossible to use.
    Ascotto: That is also my point. The Pencil preference panel didn't change much from the previous versions except for the "Option toggles to Smooth Tool", which, by the way, thank you Adobe, for including that. Because as much as I like the new strait line feature, I also like to smooth and edit my selected paths with the option key a lot. So why didn't they include a turn OFF Close Paths option?

  • How do I constrain the Pencil Tool

    I am using Illustrator CS 5 on a Mac Pro using Lion OS X. I am an intermediate user having had to move over from Freehand. I just started using the Pencil tool today but can't figure out how to activate the modifier keys to work with the Pencil tool. They work with all the other tools like shapes and the pen tool, just not with Pencil.
    I did a web search and found several threads about similar problems that seemed to be concerned with the modifier keys not working with ALL command. Suggestions included turning off Foxfire, Outlook, Entourage, etc. with indifferent success. Also deleting the preferences files. But I only have a problem with one command. I have found tutorials that indicate using the modifier keys with Pencil so I know it is supposed to work. Is there a solution? I don't know a lot about this so please be explicit in any replys. I am not an IT expert and didn't follow the jargon in most of the posts I found.
    Sign me Confused and Frustrated.

    These are all interesting, if confusing, suggestions, thanks. Maybe I need to clarify what I am trying to do. This first image is of a plan I drew in AutoCADD LT. In full AutoCADD there is a Sketch, or Jitter command that gives
    you options to make the lines look like they are draw with pencil, or chalk, or markers. I don't have those controls on my version of the program. So, I was hoping to be able to use Illustrator to convert, nor redraw, the existing lines and curves to look hand drawn. In drafting one uses rulers and Tsquares to keep lines straight, but they often overlap at the ends. The overall effect I wanted was more casual, less rigid, but still drawn using drafting tools.
    The second drawing is one I imported as a pdf into Photoshop. Using the brush tool, and the Shift key, I traced over the lines to create the look I wanted. It works, but took several hours to do multiple plans. I was hoping to find a simple filter or command that would take the exisitng lines and apply the effect of the sketchy, hand drawn look without having to redraw everything.

  • Hello , I have installed adobe illustrator CS5 and when i open it..tool bar isnt working.. when i click at rectangle/pen tool the sub options on it dont appear though black sign comes.. am confused wat to do?? i have windows 8 as OS.. please help soonest.

    Hello ,
    I have installed adobe illustrator CS5 and when i open it..tool bar isnt working.. when i click at rectangle/pen tool the sub options on it dont appear though black sign comes.. am confused wat to do?? i have windows 8 as OS.. please help soonest.....thankyou

    charmi,
    The following is a general list of things you may try when the issue is not in a specific file (you may have tried/done some of them already); 1) and 2) are the easy ones for temporary strangenesses, and 3) and 4) are specifically aimed at possibly corrupt preferences); 5) is a list in itself, and 6) is the last resort.
    1) Close down Illy and open again;
    2) Restart the computer (you may do that up to 3 times);
    3) Close down Illy and press Ctrl+Alt+Shift/Cmd+Option+Shift during startup (easy but irreversible);
    4) Move the folder (follow the link with that name) with Illy closed (more tedious but also more thorough and reversible);
    5) Look through and try out the relevant among the Other options (follow the link with that name, Item 7) is a list of usual suspects among other applications that may disturb and confuse Illy, Item 15) applies to CC, CS6, and maybe CS5);
    Even more seriously, you may:
    6) Uninstall, run the Cleaner Tool (if you have CS3/CS4/CS5/CS6/CC), and reinstall.
    http://www.adobe.com/support/contact/cscleanertool.html

  • When using the clone stamp tool and press the alt key layer just moves

    when using the clone stamp tool and press the alt key to set a point it seem to create a new layer and just moves the layer arround. I can not get the clone to now work. what did I do?

    Open the Clone Source panel. I think you'll find the Clipped option is disabled. If so, enable it.

  • Screen anomaly when using pencil tool (AICS5)

    I've discussed this before, without resolution. Since upgrading to a new iMac, I see a flickering square at the cursor, when editing a path using pencil tool and Wacom tablet. Specifically, it appears when holding "Cmd" and selecting a path or "Option" dragging along a path to simplify the path. I captured a screen video and to my surprise, the square did not appear. In it's place is either a red or black circle. I am guessing these circles are part of the AI interface that I do not see on screen. I have not found any preference or documentation about them. If interested, please review this video. You'll see the circle, but not the flickering square I see on my screen. I'd appreciate help solving this mystery.
    http://youtu.be/NXuRqkHgVF8
    AICS 5 (15.0.2)
    Mac OS X 10.7.5
    Wacom Intuos 5
    Thanks,
    Ray

    Thanks, Wade.
    This is a brand new computer. Card is working well in every other aspect.
    I am up-to-date with all Apple and Wacom driver updates.
    Question: Am I supposed to be seeing the red and black circles that appear in the video? I have NEVER seen these, in my 25 years of working with Illustrator.

Maybe you are looking for

  • How do you open multiple web pages on same screen macbook air

    I wish to refer to multiple pages to check info on each page and copy how do you do this in safari

  • Https-everywhere Won't update & Won't Download, What Should i do?

    its my old post i made to another Firefox forum Topic, it was off topic there & there i asked how to solve the issue why docent https-everywhere update? & from the site it won't let me install the new version neither, i have 4.0.2, & new version is 4

  • Canon Scanner CanoScan 8000F

    Help please. I have upgraded to OS 10.9 Mavericks and can not find a download to run my CanoScan 8000F scanner. Any suggestions? (This is not a 8800F & I understand that that driver will not work.) Thanks for help. Nic

  • Best format for emailing short videos

    I want to email short edited videos of the kiddo to family and friends but I want it to be the best quality possible to send in email format. I'm in the process of testing different formats to export to but thought I'd ask for tips. Also, should I no

  • Safari not loading images with UK2 webmail

    Hi, i wonder if anyone can shed any light on this for me please. I use UK2.net webmail which i access through safari on my imac and ipad. For the last couple of days images have stopped loading with all my emails, (and won't load at all). I have trie