Fast drawing of lots of rectangles, zoomable

Hey all,
I need to build a zoomable Canvas onto which I need to draw around half a million small rectangles. Ideally,
it should be possible to zoom/pan into this canvas interactively, e.g. with low lag. The dimensions of the canvas
are quite large, e.g. it will be about 0.5 billion units in height and a few hundred million units in width.
A friend of mine recommended the use of OpenGL for this, but I am hoping that I can use some "standard"
stuff to do this (and the Java2D pipeline is said to be OGL-accelerated nowadays anyways, right ?)
Does anyone have any suggestions ? I don't mind looking at commercial components, too, if they are easily
redistrbutable...

ThomasDullien wrote:
But the users is used to a lot of pain :-P...well, when it comes to inflicting pain on the users you can never do enough, which makes this even more interesting :-)
Thinking about it again, I think it's not a good idea to draw the entire thing as a BufferedImage and them copy components...
Memory consumption alone will be at least 0.5bn * a few million, e.g. more RAM than we have. This is correct, it will consume a huge amount of ram. You should, however, keep in mind that swing will internally double-buffer everything in order to provide smooth scrolling. You might need to turn it off for your JPanel using JPanel#setDoubleBuffered(false).
I guess what I need is:
A rectangle describing the entire area, a rectangle describing the sub-area that is currently visible, and the size (in pixels height/width) for
the sub-area.
Then, to draw, naive, without any optimiztions:
Iterate through all rectangles
calculate if the rectangle overlaps with the visible sub-area
if no, next
if yes, calculate the rectangle's pixel size, draw it
Does that make sense so far ? Or was this what you meant when you said "mind the clip" ?Pretty much. As the previous poster pointed out, you can always ask a Graphics object for its clip bounds. It is a common mistake to assume that Graphics will do the clipping for you - well, it will, but at a much higher cost compared to you doing it manually. Still, considering the amount of rectangles, you might want to optimize your clipping routine rather than just iterating over millions of rectangles with each repaint. I'd suggest you use a technique usually used for collision detection (this is a grossly oversimplified view):
Create an array of your rectangles and sort it by their x values. A rectangle will not be visible if its x value is larger than clip.x+clip.width, or if rectangle.x+rectangle.width is smaller than clip.x. Now, you can detect the last rectangle you need to consider using a binary search for clip.x+clip.width. All rectangles 'right' of this one in the array don't even have to be checked in the first place. Assuming that your rectangles are of equal width, you'll simply need to go 'left' while the rectangle you're looking at still fulfills the condition (rectangle.x+rectangle.width < clip.x). This will ideally give you a very small subset of rectangles to examine (you'll still have to check the y values, but you can apply the same approach here as well). Theoretically, this ought to be a lot faster than naive iteration.
Cheers,
ThomasGood luck :-)

Similar Messages

  • Fast Draw Read VI missing in EXE

    EXE contains 3D graphs.
    Install EXE then click on desktop icon.
    Displays that it is opening main VI (shouldn't state this).
    Loading                                               585 loaded
    C:\Program Files(x86)\EXE\3D Plot\Fast Draw Read.vi
    Searching:
    C\Program Files (x86)\EXE\instr.lib.
    It then opens a screen that says
    Looking in:
    But can’t find this file anywhere.
    Anyone know the issue and how to fix it?
    Thanks.
    Solved!
    Go to Solution.

    Hi battler,
    I have found the file the executable is looking for here:
    I would expect this VI to be included automatically when you add your source files containing 3d graphs.  You may want to check your development computer and verify that the Fast Draw Read.vi was not removed.  Hope this helps!
    Cole R.
    National Instruments
    Applications Engineer

  • Faster drawing with 2D Director

    Hi....
    Im building a game with director 8.5 and Im having
    performance issues related to the drawing of all the sprites and
    animations on screen. Is there anyway I can have director using the
    video card for its drawing instead of software??? Maybe an xtra or
    anthing that can help?
    thanks

    hey again...
    Picture a puzzle game like colapse or tetris where there are
    multiple peices that at one point or another that might be moving
    around. There is also a faire amount of small animations playing
    while your playing the puzzle game.
    Ive attempted loading sprites using director3D's overlay
    feature so that all sprites are hopefully loaded in the vid card
    for faster drawing and animating....but it seems that when drawing
    huge sprites (like 800x 600) overlays are faster then to have them
    on the score as 2D sprites....but when it comes to drawing a huge
    amount of small sprites...director's 2D is faster then drawing them
    as 3D overlays...

  • 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.

  • When drawing with polygon tool, a solid black rectangle appears??

    When I use the polygon tool to draw, a mysterious black rectangle appears underneath, and grows with my cursor movement, obscurring whatever is underneath. The black shape has nothing to do with the shape I'm creating. I am tracing boundary locations on a map, for example, and the black shape blocks out the lines I'm trying to trace, if my opacity is set at 100%.  It mimics the opacity I'm using to draw.  I never saw this in AA7.  Why would anyone want this function, and is there a way to turn it off?

    Hey leonieDF
    Thanks for your reply. I am exporting edited versions - export seems to work OK when exporting originals. But all my images are edited a bit, even if just simple cropping etc.
    I tried adjusting the color sync profile as you suggested but this didn't help. I also adjusted the gamma and watermark and again, no change.
    It seems like I have some kind of bug or something within Aperture, because it is doing all kind of strange things, like now eny time I edit a photo at all it appears solid black in my "browse" view (but OK when I double click it). Similarly, when I duplicate a photo it does random funky stuff to the photo in browse view (from being solid black, to solid red, to appeairng to have some random color filter, to appearing like static from static TV). These issues are all secondary though from the main issue of not being able to export images, since I have a friends wedding photos I am trying to get out to them!
    Any other ideas of what might be causing this?
    Thanks for your help!

  • How can i color the pixels that are only in the area of the rectangle i'm drawing on the picturebox1 ?

    In the form i have picturebox mouse down event:
    bool DrawIt = false;
    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    timer1.Stop();
    LoadPictureAt(trackBar1.Value, sender);
    pictureBox1.Refresh();
    if (e.Button == MouseButtons.Left)
    rect = new Rectangle(e.X, e.Y, 0, 0);
    DrawIt = true;
    pictureBox1.Refresh();
    rect is a global Rectangle variable.
    The the picturebox mouse move event:
    List<Point> NewPoints = new List<Point>();
    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    if (e.Button == System.Windows.Forms.MouseButtons.Left)
    if (DrawIt == true)
    rect = new Rectangle(rect.Left, rect.Top, Math.Min(e.X - rect.Left, pictureBox1.ClientRectangle.Width - rect.Left), Math.Min(e.Y - rect.Top, pictureBox1.ClientRectangle.Height - rect.Top));
    NewPoints.Add(e.Location);
    pictureBox1.Refresh();
    In the mouse move event i'm drawing the rectangle i didn't check it yet but in the move event i want to draw the rectangle in real time on the picturebox1.
    Then the paint event:
    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    if (cloudPoints != null)
    if (DrawIt)
    CloudEnteringAlert.pointtocolorinrectangle = cloudPoints;
    Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height, PixelFormat.Format32bppArgb);
    CloudEnteringAlert.Paint(e.Graphics, 1, 200, bmp);
    First in the paint event how do i use the rect to draw the rectangle ?
    Second cloudPoints contain all the pixels in the pictureBox1 Image. Could be 44000 or 400.
    cloudPoints is a List<Point>  For example in cloudPoints index 0 i have a coordinate x = 100 y = 200 of a pixel.
    Then i send the pixels coordinates to another class with Paint method and color the pixels in yellow.
    But instead sending all the pixels coordinates in ccloudPoints i want to send to the paint event only the pixels coordinates from cloudPoints that exist inside the rectangle i was drawing. Only the pixels in the rectangle i was drawing.
    So in the end the List<Point> pointtocolorinrectangle will contain only the pixels coordinates exist in the rectangle i was drawing.
    1. How to fix the code in the move event ?
    2. How to change the code in the paint event so it will send coordinates of pixels only that exist in the drawn rectangle.

    I did it this way:
    bool DrawIt = false;
    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    timer1.Stop();
    LoadPictureAt(trackBar1.Value, sender);
    pictureBox1.Refresh();
    if (e.Button == MouseButtons.Left)
    rect = new Rectangle(e.X, e.Y, 0, 0);
    DrawIt = true;
    pictureBox1.Refresh();
    List<Point> NewPoints = new List<Point>();
    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    if (e.Button == System.Windows.Forms.MouseButtons.Left)
    if (DrawIt == true)
    rect = new Rectangle(rect.Left, rect.Top, Math.Min(e.X - rect.Left, pictureBox1.ClientRectangle.Width - rect.Left), Math.Min(e.Y - rect.Top, pictureBox1.ClientRectangle.Height - rect.Top));
    NewPoints.Add(e.Location);
    pictureBox1.Refresh();
    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    if (cloudPoints != null)
    if (DrawIt)
    e.Graphics.DrawRectangle(pen, rect);
    var pointsAffected = cloudPoints.Where(pt => rect.Contains(pt));
    CloudEnteringAlert.pointtocolorinrectangle = pointsAffected.ToList();
    Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height, PixelFormat.Format32bppArgb);
    CloudEnteringAlert.Paint(e.Graphics, 1, 200, bmp);
    Working perfect just what i needed.

  • Fast 3D-ish graphics

    hi. i have a program somewhat similar to a pinball or arkanoid game (you can check it out at http://web.mit.edu/dum_dani/www/gizmoball.html ), and i need to paint its "objects" (balls, square/circular/triangular bumpers, flippers & paddles) in a 3D-ish way. right now i'm doing this by using GradientPaint, but it's very slow (for some board configurations the paiting takes ~100ms, which forces me to have an animation at <10fps (which sucks)). i tried to keep an Image object for every board "object" (ball, paddle, etc.), and use Graphics2D.drawImage(...) method to paint them on the board. apparently, this is even slower. any suggestions how to improve the performance, but still keep the 3D-ish look? i'd like to keep the GradientPaint style, but any other (fast) way of giving the objects a 3D look will be appreciated. thanks.

    I don't know why the if block would be running faster than the draw. In my experience, creating the new BufferedImage is what takes the longest, but after that, painting them, especially if they are small, takes fairly little time. Also, by using a few images for dynamic objects, flashing is greatly reduced without using costly double buffering of the entire game board.
    One thing I noticed, and I don't know how or if it affects performance, you should probably use getGraphics instead of createGraphics when using the image. And when you use createGraphics, you should call dispose on them when you are done using them.
    As for repainting areas around moving objects, I think it would be worth the effort, especially if you want to do more development like this. If you only have to repaint a few small rectangles instead of the entire screen every time, that speeds up drawing a lot. To get it to work, try having objects call a bounded refresh method on the board using the bounding boxes of their old and new positions. It also means taking out a global repaint in the run method of the thread controlling the game.

  • Help a newbie: drawing shapes (but seeing it drawn in 'real' time)

    Hi guys,
    I'm a complete Java newbie, but I'm learning it for my senior project in physics that deals with strong field laser physics modeling. My question actually doesn't pertain to any of that though.
    I have a little applet that just draws a snowman, but my friend (who's a really good girl friend of mine) would like to see the shapes being drawn, like appearing from nothing, then being created as the applet runs. Does that make sense? I have no idea how to make something 'trace' or create or cirlce a rectangle slowly. Any help would be appreciative. Thank you.
    Adam

    Make it run slower, by putting about a jillion other threads continuously factoring random odd integers ;)
    Or re-write the line/circle drawing routines and put a pause between various steps.
    Another possible option is taking off the buffer, but this may still be too fast with a lot of flickering.
    Or just tell her you've got better things to worry about than lines drawing themselves slowly...

  • Very simple question-how to fill a shape I draw with color

    hi. I am new to photoshop and having a lot of trouble selecting any shape that I draw. I am trying to do a tutorial that involves filling a canvas with gray, then drawing a smaller white rectangle inside of the larger gray canvas/rectangle. (I did not forget to unlock the background).
    My question: how do i select and fill (with white) the second rectangle I draw on top of the larger gray rectangle???
    In general, I cannot figure out how to select and/or fill any shape I draw using the rectangle tool. Likewise, the marque shape tools are no help as I cannot seem to draw a marque on my gray rectangle in order to select it and fill it with a white fill. I have also tried to use a "fill layer."
    I am almost certain that something is wrong with my computer(I reset the settings), but then again I have not used photoshop in over a year. Any help  will be greatly appreciated.

    The Rectangle Tool sgould create a Work Path, Shape Layer or Fill Pixels according to the Settings in the Options Bar.
    The Rectangular Marquee Tool should create a Selection, which you could Edit > Fill or use as a Layer Mask for a Solid Color Layer.
    Could you please post a screenshot with the pertinent Panels visible?

  • Help trying to create multiple rectangles

    Hi, I'm trying to create a five-in-a-row game, and I need lots of rectangles, forming a kind of a net. I've figured out a bit, but the thing is that every new rectangle seems to erase all the former ones, so in the end there's just the last one. I use this code:
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import javax.swing.*;
    public class luffare extends JApplet {
    ruta rutor[] = new ruta[400];
    public void init() {
    for(int a=0;a<20;a++){
    for(int b=0;b<20;b++){
         rutor[a*20+b] = new ruta(a*10, b*10);
         //rutor[a*20+b].setBackground(Color.white);
    getContentPane().add(rutor[a*20+b]);
    class ruta extends JPanel implements MouseListener, MouseMotionListener{
    Rectangle rect;
    public ruta(int xPos, int yPos){
    rect = new Rectangle(xPos, yPos, 10, 10);
    addMouseMotionListener(this);
    addMouseListener(this);
    public void paintComponent(Graphics g){
    Graphics2D g2 = (Graphics2D)g;
    g2.draw(rect);
    public void mouseReleased(MouseEvent e){}
    public void mousePressed(MouseEvent e){}
    public void mouseDragged(MouseEvent e){}
    public void mouseMoved(MouseEvent e){}
    public void mouseClicked(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    public void mouseEntered(MouseEvent e){}
    I'm really stuck here, can anybody help?
    regards,
    M?ns Wide

    Hey, I'm no Swing expert, actually I'm very much a beginner in Swing! I suggest you go through the Swing tutorials
    {color:#0000ff}http://java.sun.com/docs/books/tutorial/uiswing/index.html{color}
    and learn about the multitude of features that can be useful to you.
    After that, if you have any problems related to Swing, please post in the Swing forum where you will get advice from real experts.
    This works, using setBounds(...) with null Layout --I've added the position number to each Ruta (size increased to 20 X 20 for that) so you can see where they go.
    file Luffare.javapackage manswide;
    import java.awt.*;
    import javax.swing.*;
    public class Luffare extends JApplet
        Ruta rutor[] = new Ruta[400];
        public void init ()
            setLayout (null);
            for(int a = 0; a < 20; a++)
                for(int b = 0; b < 20; b++)
                    rutor[a * 20 + b] = new Ruta (a * 20 + b);
                    getContentPane ().add (rutor[a * 20 + b]);
                    rutor[a * 20 + b].setBounds (a * 20, b * 20, 20, 20);
    }file Ruta.javapackage manswide;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    class Ruta extends JPanel implements MouseListener, MouseMotionListener
        Rectangle rect;
        int id;
        public Ruta (int newId)
            id = newId;
            setBorder (LineBorder.createBlackLineBorder ());
            addMouseMotionListener (this);
            addMouseListener (this);
        public void paintComponent (Graphics g)
            Graphics2D g2 = (Graphics2D)g;
            g2.setFont (new Font("Arial", 1, 9));
            g2.drawString (Integer.toString (id), 2, 10);
        public void mouseReleased (MouseEvent e) {}
        public void mousePressed (MouseEvent e) {}
        public void mouseDragged (MouseEvent e) {}
        public void mouseMoved (MouseEvent e) {}
        public void mouseClicked (MouseEvent e) {}
        public void mouseExited (MouseEvent e) {}
        public void mouseEntered (MouseEvent e) {}
    }It's good practise to place each java class in its own file.
    db
    -- To post code, use the code button or type the code tags -- [code]CODE[/code] is displayed as CODE

  • How to make Rectangle persistant when another rectangle is drawn

    Hello,
    Please some one help with this,
    actually what i m tryin to do is, when i mouse click n drag the mouse n release it , i want a rectangle to be drawn.
    and when i click on another location then also i want a rectangle to be drawn and the previusly drawn rectangle should also be vissible.
    I am able to draw the rectangle but whe i draw a new rectangle the old rectangle vanishes.
    i should be able to draw any number of rectangles, and all the rectangle
    should be vissible.
    can any one plz help me with this.
    Plz help
    Regards
    Sanam
    import java.awt.*;
    import java.applet.*;
    import java.awt.event.*;
    <applet code = "Test.class" width = 1020 height = 600>
    </applet>
    public class Test extends Applet implements MouseListener
         private Color color = Color.black;
         int x1, y1, x2, y2 = 0;
         int width, height = 0;
         int startX, startY = 0;
         boolean drawObject = false;
         boolean moveObject = false;
         Rectangle myRectangle = new Rectangle(startX,startY,width,height);
         public void init()
              setBackground(Color.gray);
              addMouseListener(this);
              int i = 5;
         public void paint(Graphics g)
              //recover Graphics2D
              Graphics2D g2 = (Graphics2D)g;
              g2.setColor(color);
              if(drawObject)
                   //create Rectangle Object
                   myRectangle = new Rectangle(startX,startY,width,height);
              else if (moveObject)
                   myRectangle.setLocation(x2,y2);
              g2.draw(myRectangle);
         //--> Start of section dealing with Mouse Events
         public void mouseClicked(MouseEvent e)
         public void mouseEntered(MouseEvent e)
         public void mouseExited(MouseEvent e)
         public void mousePressed(MouseEvent e)
              x1 = e.getX();
              y1 = e.getY();
              //Check to see if mouse is pressed in the current rectangle.
              if(myRectangle.contains(x1,y1))
                   //move the object instead of moving it
                   drawObject = false;
                   moveObject = true;
              else
                   //draw the object, don't move
                   drawObject = true;
                   moveObject = false;
         public void mouseReleased(MouseEvent e)
              //get the positions of where the mouse was released
              x2 = e.getX();
              y2 = e.getY();
              if (x1 != x2 && y1 != y2)
                   //maths to work out where to draw the object
                   if(x1 < x2 && y1 < y2)
                   {//1
                        startX = x1;
                        startY = y1;
                        height = y2 - y1;
                        width = x2 - x1;
                   else if (x1 > x2 && y1 > y2)
                   {//2
                        startX = x2;
                        startY = y2;
                        height = y1 - y2;
                        width = x1 - x2;
                   else if (x1 > x2 && y1 < y2)
                   {//3
                             startX = x2;
                        startY = y1;
                        height = y2 - y1;
                        width = x1 - x2;
                   else if (x1 < x2 && y1 > y2)
                   {//4
                        startX = x1;
                        startY = y2;
                        height = y1 - y2;
                        width = x2 - x1;
              repaint();
    }

    Every time you repaint it only draws what you tell it to, so how bout something like this:
    Add a vector to store the rectangles:
    Vector<Rectangle> rectangles = new Vector<Rectangle>();In paint when you create a new rectangle add it to the vector:
             public void paint(Graphics g) {
              //recover Graphics2D
              Graphics2D g2 = (Graphics2D)g;
              g2.setColor(color);
              if(drawObject) {
                   //create Rectangle Object
                   myRectangle = new Rectangle(startX,startY,width,height);
                   rectangles.add(myRectangle);
              } else if (moveObject) {
                   myRectangle.setLocation(x2,y2);
              for (int i = 0; i < rectangles.size(); i++) {
                   g2.draw(rectangles.get(o));
          }When you check to see if the click is in a rectangle check them all:
         //Check to see if mouse is pressed in the current rectangle.
         for (int i = 0; i < rectangles.size; i++) {
              if(rectangles.get(i).contains(x1,y1)) {
                   //move the object instead of moving it
                   drawObject = false;
                   moveObject = true;
                   myRectangle = rectangles.get(i);
         }Just briefly looked over your code so there may be a few other places you need to change. Also if you post code its a lot easier to read if you put it in code tags.
    Alex.

  • Draw Circle tool

    I am currently working myself deeper in the techniques of drawing and painting with Photoshop and while drawing I always encounter one problem: Drawing a circle. There are several workarounds for that:
    * Select circle, Border1 and fill
    * Make a circle as a form and place
    * Make a circle as a brush and draw it
    * Make a circle with a pass and fill path with brush
    But all of these seem to me just like workarounds and hinder me in my workflow. My suggestion would be a more simple, more fluent way. Photoshop can draw lines vertical and horizontal to the screen, my suggestion is not very different. My proposition is:
    * Hold a desired hotkey (like q or something) over the complete operation
    * Click where the midpoint of the circle is supposed to be
    * Click and hold again in the desired radius and draw your circle.
    This would work like drawing a line, you just draw a circle. This would give the user full control over the brush with sensitivity. That would be first of all faster and more intuitive than all the listed ways of drawing a circle and as mentioned you wouldn't lose any control over your brushsensitivity and options, while you can just simulate pen pressure with path filling.
    Thats it for now, any comments or amendments are welcome.
    Simon Kopp
    Germany

    Ok, and how do you envision drawing an ellipse, a rectangle, a rounded rectangle, or any other shape with the current brush?
    Using down more buttons?
    That's why you receive workarounds, because your FR is not "doable" without taking care of the myriad of sub-requests that you did not envision...

  • Why would my video clips be running too fast when played on the monitor panel?

    I posted my problem earlier today, but re-reading it maybe I didn't explain myself well enough.
    My main question is: "why would my video clips be running too fast when played on the monitor panel ?".  This is occuring after I have selected my media from the Tasks Panel and placed them in correct order in the Timeline/Sceneline.  I knew something was wrong when I could see that the clips were not indicating their right length when viewed in the (expanded) timeline.  They were compressed into just a few seconds, whereas the clips should have been at least 5 minutes.  I ran the clips in the monitor and sure enough they ran too fast, with a lot of jerking movements.
    The 3 video clips I am trying to make into a HD PAL video were taken with my Nokia N8 mobile video camera. These are in mp4 format. Can this present a problem ?  Note that when I play these individual HD clips on my computer in (Windows Media Player) they run fine.
    After I placed the clips in my Project Panel (or before in the Organize Workspace), I have perforned no change or manipulation of the clips.  They are in their original state.
    Just too confirm that the clips did seem to be compressed, I burnt a DVD, the resultant video ran in a matter of seconds.
    Help would be greatly appreciated.

    Yes, that is what the problem was.
    Although the video camera on my Nokia N8, mobile was capturing at 25fps,
    for some reason once transfered over to PrE9 (via file transfer), the clip was interpreted as 500fps.  Once in Interpret Footage I was able to change the fps to 25.
    Thanks for the help.

  • What are your preferred word processing and drawing apps?

    I currently use LibreOffice for most purposes, because it has both word processing and drawing software built-in, because it can read many file formats, without as much trouble as most other office suites. Unfortunately, while it can import AppleWorks word-processing documents, it can't import drawings, spreadsheets, etc., and while it can import older Word word-processing documents, it tends to corrupt the tables, the fancier quotes, etc. Also unfortunately, it does not work well with speech-to-text/dictation, not that dictation works well. Also unfortunately, it sometimes screws up imported images.
    I try to minimize formatting to avoid that in the future.
    I used to use Appleworks for most purposes, but it isn't supported anymore.
    I tried TextEdit, but it doesn't allow me to save different versions of the same document, or a new document based on an old document, it screws with page margins, and it doesn't have drawing software. I used to use Word, and at one point used Pages, but there are all sorts of issues with their file formats and incompatibilities between different versions.
    I would like a functional but not excessively fancy word-processing and drawing tool, and either as part of that, or in addition to that, a suitable version comparison tool. I draw a lot of maps, so the drawing program has to respect scale, and I have coordination problems, so it has to make it easy to put the right object in the right place. I've had trouble with that in LibreOffice.
    So in general, what word processing and office suite software do you think works for your needs, or would work for my or other people's needs?

    http://itunes.apple.com/ca/app/pages/id361309726?mt=8
    http://itunes.apple.com/us/app/numbers/id361304891?mt=8
    http://itunes.apple.com/ca/app/documents-to-go-premium-office/id317107309?mt=8

  • X11 Xlib, Drawing in a window has no effect in archlinux

    I'm trying to draw some lines and rectangles in a window but the window background color remains white. There are no issues in ubuntu 10.04 LTS with xlib 1.4.? but in archlinux and fedora.
    In Fedora I did a strace and ltrace and for some reason the lines and rectangles were drawn then. Executing the same "ltrace ./test" hadn't the same effect in archlinux, the window remained unchanged.
    ltrace in fedora
    strace in fedora
    I have no more ideas how to proceed to fix this issue. Did something change in xlib what I'm not aware of?
    Here's the source and here's the issue.
    Last edited by slopjong (2012-10-21 10:33:21)

    The link also failed for me, but I believe I found what you were talking about.  It also fails for me, but I found if I put a  "sleep(1)" after the call to your own create_gc function it worked.
    I thought to try this as I found it odd to be passing a whole GC as a return value of a function.  I'm surprised this would lead to a delay, but it seems to be the case.  Passing a pointer to an allocated block for the GC would be better - or just declare it globally.
    Edit: nevermind the second part, that didn't hold up to testing.  The first part is, however, repeatable.
    Edit2: An XFlush at the end of the create_gc function solves this for me.
    Last edited by Trilby (2012-10-21 17:29:38)

Maybe you are looking for

  • Unable to release request.

    Hi, I am unable to release my requests from transaction SE09. It shows the error message "Report not Active", but my reports are active. Please help. Thanks, Sai.

  • Regarding performance issue in SELECT - need suggestions

    Moderator message - use a more informative subject in future - having two or more posts with the same subject isn't helpful Hi All could you plese send me the alternative code for this select quesy: form read_data_from_GIPD.   select * from zbacks_gi

  • Disabling prompts blocks InfoPath publishing

    I have a SharePoint 2010 Enterprise environment with InfoPath 2010.  Using several forms published as content types in several site collections, all working fine. Users are getting prompted Open/Save of documents in libraries (word, excel) - Office W

  • Lenght of ds string

    Folks, We are trying to store xml documents in LDAP. What is the sizelimit? We can load a 2mb file but nothing larger. thanks, keith

  • AJAX Pagination

    Folks, I have a page where I call an IFRAME to populate my report, a dynamic pl/sql region calling a database package that creates the sql (depending on user selections) and executes the sql and returns the data to a ref cursor result set, the # of r