Draw an irregular cylinder-style shape in 3D

Hi All
I am new in java 3D. I got such a situation that I have the following data:
point101: (0, 0.3f, 0.4f) // degree:0; radius:0.3f; Z: 0.4f
point102: (10, 0.2f, 0.4f)
point103: (20, 0.35f,0.4f)
point201: (0, 0.35f, -0.4f)
point202: (10, 0.32f, -0.4f)
point203: (20, 0.4f, -0.4f)
I used QuadArray to draw this shape. However, when I change the view point with mouse, some parts were invisible on the screen.
I guess QuadArray is not correct, is it?
Any help will be appreciated.
David
My code attached here:
private Geometry shapeGeometry() {
QuadArray geo;
int N = 8;
int totalN = 4*N;
Point3f coords[] = new Point3f[totalN];
Color3f colors[] = new Color3f[totalN];
Color3f red = new Color3f(1.0f, 0.0f, 0.0f);
float[] r ={0.3f, 0.35f,0.2f,0.32f,0.35f,0.4f,0.3f,0.35f,0.3f, 0.3f,0.36f,0.3f,0.35f,0.4f,0.3f,0.5f};
float w = 0.4f;
int n;
double a;
float x, y;
x = (float) (r[0] * Math.cos(0));
y = (float) (r[1] * Math.sin(0));
coords[0] = new Point3f(x, y, -w);
coords[1] = new Point3f(x, y, w);
for(int i=0; i<colors.length; i++)
colors[i] = red;
for(a = 0,n = 1; n < N; a = 2.0*Math.PI/(N-1) * ++n){
x = (float) (r[2*n] * Math.cos(a));
y = (float) (r[2*n+1] * Math.sin(a));
coords[4*n-2] = new Point3f(x, y, w);
coords[4*n-1] = new Point3f(x, y, -w);
coords[4*n] = new Point3f(x, y, -w);
coords[4*n+1] = new Point3f(x, y, w);
x = (float) (r[0] * Math.cos(0));
y = (float) (r[1] * Math.sin(0));
coords[4*N-2] = new Point3f(x, y, w);
coords[4*N-1] = new Point3f(x, y, -w);
geo = new QuadArray (totalN,
TriangleFanArray.COORDINATES|TriangleFanArray.COLOR_3);
tfa.setCoordinates(0, coords);
tfa.setColors(0,colors);
return geo;
}

oops: I don't know how to draw the top and bottom of the shape. Any one can tell me how to do it? Thanks

Similar Messages

  • How to access visio drawing (.vdw - in SharePoint page) shapes in C#

    Hi,
    I need to get all shapes (which has links to other sharepoint pages) from visio drawing published in Visio web Access webpart. I could able to get Visio web Access webpart through code and get the diagram path.
    1.how to get the drawing and shapes in it from webpart?  
    2, Does it require to download the drawing locally to get all shapes in it? If so, shall use interop.visio?
    3. Have seen some javascript vwa API to getShapes, etc. Is it available in C#?
    4. Tried with interop.visio for the drawing which is stored on drive. It gives "exception occured" while open the .vdw file. (Documents.Open(@"C:\test.vdw");
    How to do this? Please guide. Environment (VS2010, SP2010, Visio 2010). thx

    hy,
    have you found a solution?
    I can read a visio file VDW on a local machine with the next code, but I can't use it on SharePoint Event Receiver because it make a "System.Security.Permissions.SecurityPermission" error on the ExtractStreamToMemory.
    thanks
    // read in the tmp file from disk using IStorage
    byte[] buffer;
    intnum;
    Extractor.ExtractStreamToMemory(tmpFileName,
    outbuffer,
    outnum);
    // access the bytes read from disk as a stream
    System.IO.MemoryStreammemStream =
    newSystem.IO.MemoryStream(buffer);
    // work with the stream as a package
    System.IO.Packaging.Packagezip = System.IO.Packaging.Package.Open(memStream);
    I'm sorry, I lost the source path of this code..

  • Ai, 3D effect - after using to either extrude or revolve the settings are retained in my drawing tools - pen, pencil and shapes. Example I draw a 50 pt extruded object in wireframe, isometric view and my pen and all drawing tools will only draw using thos

    Ai, 3D effect - after using to either extrude or revolve the settings are retained in my drawing tools - pen, pencil and shapes. Example I draw a 50 pt extruded object in wireframe, isometric view and my pen and all drawing tools will only draw using those settings. I can not exit, help please!

    Appearance panel menu > New art has basic appearance.

  • Reconnecting templates, styles, shapes, etc.

    Hi, I'm trying to figure out how to relink DVDSP templates, styles, shapes, etc. as I've moved them to a new location on an external drive. I've done this with Soundtrack Pro and Livetype with no problems, but for some reason I can't figure out DVDSP4.
    I did try clicking Import in the Shapes tab, but it moved the shapes into the custom tab area, which isn't right. And also the templates tab doesn't have an import button, so i figure that isn't the correct method.
    Can I do this? Or do I have to leave the files on the same drive as the application?

    Thank you Drew! Looking for Palette Elements under Destinations was far from intuitive and I came here (rather than open the Manual where it is all explained).
    I hope the OP is happy now.

  • Drawing with the line or shape tools

    This question was posted in response to the following article: http://help.adobe.com/en_US/indesign/cs/using/WSa285fff53dea4f8617383751001ea8cb3f-6c1fa.h tml

    There are two 'rectangle' tools The top one draws a rectangle with a "Graphic" content -- having an 'X' to indicate this --, the bottom one draws a rectangle with an "Undefined" content. Apart from the content type, there is also a difference in the graphic style assigned. The top one gets '[None]' (and it's usually totally blank, no fill and no stroke), the bottom one gets '[Basic Graphics Frame]' (usually the colors in the Fill/Stroke color proxy at the bottom of the tool palette).
    You presumably were using the top rectangle first, then switched to the bottom one.
    In any case, apart from the default color and graphic style, it really doesn't matter which one you use. If you like to see the cross, select your rectangle and change its content type to "Graphic" ("Content" is under the Object menu).
    Now you mention it: a Graphics rectangle gets the style [None], whereas an Undefined rectangle gets a style [Basic Graphics Frame]. Kind of unnecessary complication, if you ask me

  • How to draw cut the rope style box

    Hi. I was wondering how to draw a cut the rope style box.
    What I mean is how to they get that look. Is there a texture overlay? I suppose there is some blurring too.
    https://www.google.es/search?q=cut+the+box+menu&espv=2&biw=1242&bih=641&source=lnms&tbm=is ch&sa=X&ei=xf2kVOG2D8P3UqLjg9A…

    Hi.
    Yeah sorry.
    Cut the rope is a popular game app available on the app store or google play. That's why I left the link.
    The menu is made up of boxes. Each box has a pattern.
    With the following link you can see the texture even more closely. It is the green rectangle image at the top with green circles etc...
    Complete Guide to all Cut the Rope Drawings

  • Office Open Xml (PPT Office 2013) - Drawing.xml looses the SmartArt Shapes Information

    I am facing a weird problem. When I open and edit a PPT presentation containing SmartArt and then save it, it looses all the SmarArt shapes information present inside the drawing.xml (OXML) inside the diagrams folder. This happens only when I edit any other
    slide (like changing title text) in the presentation not containing the SmartArt and then save it. The whole SmartArt shapes information just vanishes and somehow PPT is able to regenerate the presentation from this drawing.xml when i reopen the presentation
    and doesn't show it as corrupt. Initially I thought its an issue specific to my machine but I checked it on other machines and its replicable on them as well. Is it an issue with PPT in Office 2013?

    I called nViida thinking it might be an nVidia issue.  He told me to download the 335.70 beta which I did and installed.  Didn't help.
    I think called Microsoft and first guy took control of my PC and suggested I install Office Pro 2013 x86 (32-bit) and then transferred me to 3 people before I got disconnected; very frustrating having to explain my issue 3 times.
    I uninstalled Office Pro 2013 64 bit and installed x86 and my problems went away.  The Tech told me that the 32 bit version is more stable and they haven't had as many issues and told me that 3rd party apps integrate (like ACT! Contact management which
    I use) so I installed the x86 version and NOW WORD, EXCEL AND POWERPOINT ARE WORKING. 
    I need to get IE 11 x86 working but that isn't that important as I use Firefox as my main browser and Chrome secondarily.
    Not the greatest resolution but something didn't like the 64 bit version of Office when I did the 8.1 Update and Office updates yesterday.

  • Draw only part of a shape transparent

    Hi,
    I have two shapes neither of which is transparent. However, the shapes overlap and I want the intersecting region on the foreground shape to be transparent so that we can see the background shape.
    So how do I draw part of a shape transparently and the rest of it not transparent? If it is any help, I have a curve in front and a rectangle behind it. I want the curve to be semi-transparent whenever it covers the rectangle.
    Maybe there is a much easier way to do this?

    import java.awt.*;
    import java.awt.geom.*;
    import javax.swing.*;
    public class SeeThru extends JPanel {
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                RenderingHints.VALUE_ANTIALIAS_ON);
            int w = getWidth();
            int h = getHeight();
            g2.setPaint(Color.red);
            g2.fill(new Ellipse2D.Double(w/3, h/3, w/4, h/4));
            Rectangle2D r = new Rectangle2D.Double(w/4, h/4, w/4, h/4);
            Rectangle2D clip = new Rectangle2D.Double(w/4, h/4, w/4+1, h/4+1);
            g2.setClip(clip);
            g2.setPaint(getBackground());
            g2.fill(clip);
            g2.setPaint(Color.blue);
            g2.draw(r);
            int rule = AlphaComposite.SRC_OVER;
            float alpha = 0.25f;
            AlphaComposite ac = AlphaComposite.getInstance(rule, alpha);
            g2.setComposite(ac);
            g2.setPaint(Color.red);
            g2.fill(new Ellipse2D.Double(w/3, h/3, w/4, h/4));
        public static void main(String[] args) {
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(new SeeThru());
            f.setSize(400,400);
            f.setLocation(200,200);
            f.setVisible(true);
    }

  • Problems with items in style drawer

    Not sure what I've done. I create the newsletter for our church. I started w/ a pre-made template and tweaked it to fit our needs. It has worked well for a couple years. Now, when I open up the Style Drawer, many of the styles are missing. There are big gaps in the list of Paragraph Styles, Character Styles etc. What have I done? Is there a way to restore all of the styles? Even when I open a new template - many style options are missing. Thanks in advance...Karen

    Do you have saved copies of the newsletter that have the lost styles??? If so you can import the styles from the old newsletter to a new document and save it as a template.
    Here is how the manual says how to do it:
    +To import styles from a Pages document:+
    +1 Choose Format > Import Styles.+
    +2 Select the document that contains the styles you want to import, and then click Open.+
    +3 Select the styles you want to import in the dialog. Hold down the Command key as you click the style names to select multiple styles, or click Select All.+
    +4 To replace styles in your document that have the same name as the styles you are importing, select “Replace duplicates.” Note that replacing a style will affect any text that uses this style; replacing a style also changes the style of text in locked objects, but the text retains its original appearance.+
    +If an imported style has the same name as a style in the open document and you do not select “Replace duplicates,” a number is appended to the name of the imported style. For example, if you import a style called Body to a document that already contains a Body style, the imported style will be named Body 2.+
    +5 Click OK.+
    +Imported paragraph styles will be available by clicking the Paragraph Style pop-up menu in the Format Bar and in the Styles drawer of your document. Imported character and list styles will be available in the Styles drawer.+
    +To maintain a consistent look among several documents, keep a master document that contains all the styles you need. When you need to change a style, change it in the master document and import the master document’s styles into the other documents.+
    Hope it'll help you!

  • Creating a 3-D Cylinder

    I want to 'draw' a vertical cylinder in 3-D to use as a pedestal on which to display various sculpture pieces. Using the ellipse tool, I have created a relatively flat ellipse in Layer 1 and have painted it a light gray to represent the top of the pedestal. In Layer 2, I created a rectangle shape and filled that with a vertical gradient, light to dark to light, so that the rectangle appears to look round. When I set Layer 1, the ellipse, on top of the rectangle, it appears that I have a round cylinder, BUT the bottom is still flat. I need to create another ellipse of greater depth (because of the increased angle in the perspective) to make the bottom round so the composite image appears as a cylinder with an elliptical top and bottom. I can do that by creating an ellipse on a Layer 3, making the Layer 2 dominant so as to hide the top of the ellipse---BUT I need to match the gradation that is in Layer 2 so that the exposed bottom half of the ellipse is a continuation of the vertical gradation on the body of the cylinder. Any suggestions? Am I making this too hard? Is there an easier approach?

    Ned,
    A tutorial for this is available in a book by Al Ward, ISBN: 0-7645-
    2597-2. He covers cylinder construction in detail, and from the CD, which comes with the book, one can load a tube gradient.
    http://www.wiley.com/WileyCDA/WileyTitle/productCd-0764525972.html
    Your library may have it. I did not see it listed by Amazon.
    Ken

  • Cannot draw a transparent rectangle in Flash CS4

    Hi,
    In Flash CS4, when I draw a rectangle (or circle, or anything) with a color that has 0 alpha, nothing is drawn. Also, if I select a piece of drawing and change the color to 0 alpha, the drawing (e.g. rectangle) disappears!!
    Is there any way to disable this astonishingly stupid behaviour?
    I know I can draw a non-transparent rectangle, convert it to movie clip and set the movie clip's alpha to 0, but I'd like to avoid this.

    No it isn't a feature. It is definitely a bug. I experienced this once before. I had the part where if I selected something that already existed and changed its fill to alpha 0 then it just disappeared. And I too thought it was somebody had made a really bad programming choice when writing CS4.
    But then it went away. I've never figured out what caused it or why. I think at the time my response was just to set the alpha low (1%) with a thought like, "Well, that is hella annoying, I don't have time to deal with it now I'll come back and figure it out later." And then it just got better on its own.
    Sorry I don't have anything specific other than to tell you that you aren't alone and you aren't imagining it!
    You have updated to 10.0.2? I can't remember if it happened to me before the update or not. Are you on a Mac or PC? I also can't remember if this happened to me at work or home, so I don't know which one I saw it on. BTW I just tried it on my Mac and I can draw and/or change a shape to fill alpha zero.

  • Draw Dynamic Column with Static Columns

    Hi All
    I have to show dynamic columns with static columns including column header and I am choosing the Cross Tab style. I have done this already in SSRS but failed to do in Crystal Report version (Crystal Report Basic for Visual Studio 2008).
    Name             Hair Color      City        Age           Mobile                        Email
    Jannie            Brown          Dublin        15         +353 122 1234567     Email Address
    John               Black            Dublin       20          +353 145 1234567      Email Address
    Dynamic Columns
    Name , Hair Color , City Age
    Static Column
    Mobile, Email
    I also face empty rows in cross tab report.
    Please help and give me a chance of thanks.

    Thank you very much for your kind response. Actually i have dynamic Store Procedure  results based on parameters and yes static column will never changed
    Store Procedure Result
    Mobile                        Age            Email                       Key              Value
    +3531221234567     15             Email Address         Name           Jannie
    +3531221234567     15             Email Address         Hair Color    Brown
    +3531221234567     15             Email Address         City              Dublin
    +3531451234567     20             Email Address         Name           John
    +3531451234567     20             Email Address         Hair Color     Black
    +3531451234567     20             Email Address         City              Dublin
    And I want to draw report in following style
    Name     Hair Color     City      Age      Mobile                       Email
    Jannie   Brown          Dublin   15     +3531221234567       Email Address
    John     Black             Dublin   20     +3531451234567       Email Address

  • Drawing Tools Acting As If Shift Key Being Held Down

    Hey guys,
    Small problem here with Adobe Acrobat Reader 8.0.0. When drawing square, oval, etc., the shapes are coming up as if the Shift Key was being held down. This also happens when trying to draw a box to place a digital signature. Check my keyboard, and there was nothing stuck in it that might be pressing the Shift key. Tested out by using Microsoft Paint to draw lines and they seem to work fine, so I think the problem is only in Adobe. I couldnt find anything online regarding this issue, which was kinda hard to put into words anyways into a search engine. Ive tried running the repair installation of Adobe, but no result. Any idea what might be causing this?

    Yes, that looks all like symptoms of a pressed Shift button.
    If you want to uninstall and reinstall Firefox then make sure to delete the Firefox program folder to make sure that there aren't any leftover files in it.
    *http://kb.mozillazine.org/Uninstalling_Firefox
    You can find the latest Firefox release in all languages and for all Operating Systems here:
    *Firefox 16.0.x: http://www.mozilla.org/en-US/firefox/all.html
    Create a new profile as a test to check if your current profile is causing the problems.
    See "Creating a profile":
    *https://support.mozilla.org/kb/profile-manager-create-and-remove-firefox-profiles
    *http://kb.mozillazine.org/Standard_diagnostic_-_Firefox#Profile_issues
    There may be extensions and plugins installed by default in a new profile, so check that in "Tools > Add-ons > Extensions & Plugins" in case there are still problems.
    If the new profile works then you can transfer some files from the old profile to that new profile, but be careful not to copy corrupted files.
    See:
    *http://kb.mozillazine.org/Transferring_data_to_a_new_profile_-_Firefox
    Try to boot the computer in Windows Safe mode with network support (press F8 on the boot screen) as a test to see if that helps.
    *http://windows.microsoft.com/en-US/windows7/Advanced-startup-options-including-safe-mode
    *http://windows.microsoft.com/en-US/windows-vista/Advanced-startup-options-including-safe-mode

  • Zooming on a large drawing

    Can someboby, please, help me to manage the zooming of an area of size 30x30 pixels of a large drawing.
    The drawing contains a number of shapes, but in the code that I will be posting I will be using only one shape. The drawing is made up of more than 500 shapes, reason for which has to be scaled to fit on a monitor.
    What I would like to happen is : when mouse clicked anywhere on the drawing a small area of 30x30 pixels should zoom out so the label for the shape to be clear. At this zoomed stage I should also be able to click on a chosen shape and open some frame.
    I will post the code I wrote bellow. Could somebody please be so kind and help me!
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.awt.geom.*;
    import javax.swing.*;
    public class drawHarp
         AffineTransform at=new AffineTransform();
         AffineTransform saveForm;
         GeneralPath r;
         Graphics smallcomp;
         String text,stat;
         int ax,ay,h,w;
         int angle ;
         boolean scaled;
         public drawHarp(Graphics2D g2D,int inax,int inay,String status,String intext,double angle,boolean scale )
              text=intext;
              ax=inax;
              ay=inay;
              scaled = scale;
              stat = status;
              saveForm = g2D.getTransform();
              initShape();
              if((scale==true)&&(angle==0)){
                        setScale();
                        setTransform(g2D);
                   }else if((scale==false)&&(angle==0)){
                        drawShape(g2D);
                   }else if((scale==false)&&(angle!=0)){
                        setRotate(angle);
                        setTransform(g2D);
                   }else if((scale==true)&&(angle!=0)){
                        setScale();
                        setRotate(angle);
                        setTransform(g2D);
         public void initShape(){
              r=new GeneralPath(GeneralPath.WIND_NON_ZERO,12);
                                       r.moveTo(ax, ay+5);
                                       r.lineTo(ax+20,ay+5);
                                       r.moveTo(ax, ay+10);
                                       r.lineTo(ax+20,ay+10);
                                       r.moveTo(ax, ay+15);
                                       r.lineTo(ax+20,ay+15);
                                       r.moveTo(ax+5, ay);
                                       r.lineTo(ax+5,ay+20);
                                       r.moveTo(ax+10, ay);
                                       r.lineTo(ax+10,ay+20);
                                       r.moveTo(ax+15, ay);
                                       r.lineTo(ax+15,ay+20);
                                       r.closePath();
         public void drawShape(Graphics2D g2D){
              /*     g2D.setStroke(new BasicStroke(1.0f));
                   g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                                                               RenderingHints.VALUE_ANTIALIAS_ON);*/
                   g2D.draw(r);
                   g2D.setColor(Color.black);
                   g2D.drawString(text,ax-90,ay+15 );
         public void setTransform(Graphics2D g2D){
                                  AffineTransform toCenterAt = new AffineTransform();
                        toCenterAt.concatenate(at);
                                  Rectangle rect = r.getBounds();
                        toCenterAt.translate(-(rect.width/2),-(rect.height/2));
                        g2D.setTransform(toCenterAt);
                                  drawShape(g2D);
                                  g2D.setTransform(saveForm);
         public void setRotate(double angle){
                        at.rotate(Math.toRadians(angle),ax,ay);
         public void setScale(){
                   at.scale(0.3, 0.3);
    import java.awt.image.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class DisplayArea extends JApplet {
    public void init() {
    public static void main(String[] args) {
    DisplayPanel first = new DisplayPanel();
    JFrame f = new JFrame();
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    f.getContentPane().add(first, BorderLayout.CENTER);
    f.setSize(new Dimension(500,400));
    f.setLocation(600,350);
    f.setVisible(true);
    class DisplayPanel extends JPanel implements MouseListener {
    public int w, h, i;
         Graphics smallcomp;
         String shape;
         BufferedImage bi;
         Graphics g;
         Graphics2D g2;
              //     boolean[] scale= {  false,          false,    false,     false,          false,     false,          false,     false,     false,          false};
                   boolean[] scale= {  true,          true,    true,     true,          true,     true,          true,     true,     true,          true};
                   String[] stat = { "on",          "off",      "true", "false",      "0",     "1",          "on",      "off",     "on",          "off"};
                   int[] ang =           { 300,           275,      160,      275,           90,     275,          180,     275,     275,          275};
                   String[] forms = {"hp",     "hp",     "hp",     "hp",          "hp",     "hp",          "hp",     "hp",     "hp",          "hp"};
                   String[] lab =           { "B1K",          "PO",     "BKO 3","STX+Y 2K",     "HP 3K","STX+Y 3K",     "Q1K",     "Q2K",     "Q3K",          "CCP 4K"};
                   int[] ax =                { 185,          210,          235,            260,       285,      310,          335,     360,     385,          410};
                   int[] ay =                { 203,     207,     209,          211,          213,          215,           217,       219,      221,            223};
    public DisplayPanel(){
                   setBackground(Color.lightGray);
                   addMouseListener(this);
                   bi = new BufferedImage(5,5,BufferedImage.TYPE_INT_RGB);
                   g = bi.createGraphics();
         public void mouseClicked(MouseEvent e){
         System.out.println("mouseClicked "+ e.getX() +" "+ e.getY());
         int xx = e.getX();
         int yy = e.getY();
              for(int j=0; j<forms.length; j++)
              if(xx>ax[j] && yy>ay[j] && xx<ax[j+10] && yy<ay[j+10])
                   System.out.println("less");
    public void mouseExited(MouseEvent e){}
         public void mouseEntered(MouseEvent e){}
         public void mouseReleased(MouseEvent e){}
    public void mousePressed(MouseEvent e){}
    public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
              g2.setFont(new Font("SansSerif",Font.BOLD,12));
                   g2.setStroke(new BasicStroke(1.0f));
                   g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                                                RenderingHints.VALUE_ANTIALIAS_ON);
                   for(int i =0; i < forms.length; i++)
                        if(stat.equals("on")||stat[i].equals("1")||stat[i].equals("true"))
                             g2.setColor(Color.green);
                        else{
                                  g2.setColor(Color.red);
                        shape = forms[i];
                        if(shape.equals("hp"))
                                  new drawHarp(g2,ax[i],ay[i],stat[i],lab[i],ang[i],scale[i]);

    you probably want to do something like this.
    Override your paint method in your zoom window
    public void paint (Graphics g) {
    Graphics2D g2 = (Graphics2D)mainPanel.getGraphics();
    g2.translate(x,y); //whereever you want to start your zoom area
    g2.scale (dx, dy);
    }

  • Need to wrap type on bottle (cylindrical shape)

    I need to warp type around a bottle to it curves up on the left and right and also condenses slightly at the edges (as it visually does).
    Using the mesh function not only doesn't squeeze the type correctly I can't grab more than one bezier handle at a type so it is very inefficient and difficult.
    Does anyone have a much better idea?
    Thanks
    alan

    You could use the 3D effect from the effect menu. The first thing to do is to create the "label" by putting your text and any graphics together the way you want them to appear. Then with the label selected go to the Symbols palette and click and hold the right side of the palette until you see a pull down menu. Go to "new symbol". This should add you label to the list of available symbols.
    Next, draw Half of your bottle shape. Go to the effect menu and pull down to 3D > revolve. Check the preview box. Set the revolve angle to 360. select Right Edge or Left Edge depending on how you drew your profile. When you have your bottle looking the way you want it, go to the "Map Art" button. On the top right, you'll see a "Surface" selector. Click through the arrows until you find the surface you want to put your label on. On the upper left, you'll see a Symbol pull-down menu. Click and pull down until you see your symbol. When you select your symbol, you'll see it appear on your previewed art. You can then move it around and scale it until it looks right.
    Hope this helps.

Maybe you are looking for