Dual graph algorithm

Hello to all of you!
Does anyone know a known algorithm to create the dual graph of a planar (undirected) graph? Or could you give me a hint? I tried to devise a DFS approach, which would use the back and cross edges of the DFS tree in order to form the faces. The problem is that I need the set of disjoint minimum cycles. Thus I would need an algorithm to calculate the difference AUB - A^B, for two cycles A,B, where B is a part of A. By the way, is there any recommended representation of a face?
Thank you in advance and thaks for your time!
P.S. For those who would ask what is a face, a face is the area defined by a minimum cycle e.g.:
In this mesh (ignore dots):
a-b-c
I . I . I
d-e-f
a,b,c,d form a face
b,c,e,f form a face
and there is also the external face -which by the way how can it be defined?
P.S.2 the Dual Graph is the graph formed by representing each face as a node and each edge which separates two faces, as an edge between the two newlly created nodes.

OK , guess you're right! Since the following graph:
O     O
|\   /|
| \ / |
|  O  |
| / \ |
|/   \|
O     O
and this one
O---
|    \
| O  |
| | \|
| |  O
| | /|
| O  |
|   /
O---are the same, however they have a different embedding AND dual graph.
So, the embedding is defined by the coordinates of the nodes, along with
their connectivity info.
This means that for a start I need an algorithm to return the different faces of
the graph. (at least these ones have to be fixed in number -no?). Then from
the topological information for each face I should check their neighboring
relations.
For the face discovery I have thought of the following algorithm (in language):
Create the DFS tree
-Start from the root r of the DFS tree and visit each neighboring node based
on the preordering number
-When we reach a node b which has one or more back-edges we have a
cycle.
--For each back edge we go back to the node bs, starting from the
back-edge which leads us to the node bs with the greatest start time
(gretest preorder number).
--from this node, bs, visit neighboring nodes, again based on preordering,
until we find the node b (which will complete the cycle)
---While going towards b follow in reverse direction, each backedge that
terminates a currntly visited node, and starts from a node t whose
preorder[t] <= preorder[b]  (to avoid bypassing b by going deeper in the tree)
and
postorder[t] > postorder[b] (to avoid reaching another branch)
-When we reach a node, cs,which has a cross edge to another node, ce, of
the DFS tree (as a cross edge I mean a (u,v) where pre[u]>pre[v] and
post[u]>post[v]) we have found another cycle, thus a face
--from ce we go up the DFS, i.e., in reverse preordering, until we find a node
a whose postorder[a] > post[cs]
--from a we go down the DFS (in preordering) choosing the neighbor, an,
whose postorder[an] >= postorder[cs] (equality means we have found cs
thus we're done).  While descending we follow the same rules as before, in
the case of the back edge.Of course the implementation of this algorithms has to support two-way movement in the DFS tree. The distinction between tree,back and cross edges is made through the pre and post ordering.
I'm not sure but i think that, with the restrictions I have put, this algorithm can be ran while discovering and creating the DFS tree, rather after the DFS tree has been fully created.
So if the algorithm IS correct, I only need a way to derive the connectivity between the produced faces via their topological information. That is, apart from the indisputable fact that if two faces have two nodes in common, they are neighbors, we have to locate all other edges between faces.
One idea is for each pair of faces to check their min and max, X and Y coordinates. I have a sense that for faces f1and f2 where,
f1_max_X > f2_max_X and
f1_min_X < f2_min_X and
f1_max_Y > f2_max_Y and
f1_min_Y < f2_min_Y
(there must be at most one equality (i.e. <=)but I guess its no harm to add all equalities there)
holds, f1 and f2 are neighbors, thus an edge (f1,f2) must exist in the dual graph.
Of course I have written a lot but I really would like to know if there's a "good" algortihm to create faces out there and a technique to create edges between faces given the coordinates.
I propose the ideas in case someone finds something wrong and reports it or otherwise someone else finds my answer useful in the same topic.
Thank you in advance!
Message was edited by:
M.M.

Similar Messages

  • Graph algorithm question

    Hello.
    I am trying to find a graph algorithm (by graph I mean nodes interconnected to each other,not the sketch of a function).This algorithm should yield the route that passes from as many nodes of the graph as possible,though it is forbidden to step on a node twice,and then ends back to the first node that it started from,thus forming a cycle.
    I am positive that this algorithm must have been researched by now,so in order to avoid thinking it myself I wonder if someone would know to direct me somewhere in the web where I can get it.Since I am a medical student,any terminology help would be also appreciated(as to the name of what I want,keywords to search etc).

    OK. Before you get too geeky here, try a brute force approach. if your graph is small or has limited connectivity, you may not need to get fancy. Its surprising what a computer can do without breaking a sweat. In any case I whipped up a solution as shown below. It is untested and will most likely have bugs (and does not check for null conditions). But as you can see the code is pretty basic and should get you from point A to point B (pun inteneded).     public List<Integer> getLargestCycle( Map<Integer,List<Integer>>graph )
            List<Integer> longestCycle = new Vector<Integer>();
            List<Integer> path = new Vector<Integer>();
            for ( Integer startingPoint : graph.keySet() )
                path.add(startingPoint);
                List<Integer> aCycle = getLargestCycle( graph, path );
                if ( aCycle.size() > longestCycle.size() )
                    longestCycle = aCycle;           
            return longestCycle;
        protected List<Integer> getLargestCycle( Map<Integer,List<Integer>>graph,
            List<Integer> currentPath )
            List<Integer> longestCycle = new Vector<Integer>();
            Integer currentPoint = currentPath.get( currentPath.size()-1 );
            Integer startingPoint = currentPath.get( 0 );
            for ( Integer nextPoint : graph.get( currentPoint ) )
                List<Integer> aPath = new Vector( currentPath );
                aPath.add( nextPoint );
                if ( nextPoint.equals( startingPoint ) )
                    if ( longestCycle.size() == 0 )
                        longestCycle = aPath;
                else if ( currentPath.contains( nextPoint ) )
                    // not a cycle here.
                else
                    List<Integer> aCycle = getLargestCycle( graph, aPath );
                    if ( aCycle.size() > longestCycle.size() )
                        longestCycle = aCycle;
            return longestCycle;
        }

  • Advance Graph Algorithm

    Hello guys,
    I am working now on a TSP(traveling salesman problem), I am facing a very challenging problem in fact.
    The Main Problem: I need to find all the possible routes from A to B, I believed that there is no algorithm to provide such thing after a deadly search, so If anyone can help with just a link or a similar algorithm that would be great.
    And if you are interested to know why I need such algorithm;
    1 - I need to have the TSP works on only a part of a big graph, like a big city and I work the TSP only on 4 places.
    2 - So I need to make a small Graph object for the only 4 places, and pass it to TSP.
    3 - I need to make sure that all edges of this graph are set to the shortest paths between every pair of places. But if I found out that this shortest path go through a place which is in the TSP problem, then I have to find another(thats why i need the all routes algorithm).
    4 - (which is the main problem) this short path can't pass through any place which is within the TSP problem(coz TSP go through every place only once).
    (ex if the TSP is interested in places A, B, C, D and the shortest path from A to B passes through D, I can't pass this small graph object to TSP until I find another path connecting A to B and doesn't pass through C nor D -if there is no such path then of course I have to set it with infinity-).
    I hope one of you guys worked on this problem before,
    Thanks & Regrads,
    ES_Coders

    Thanks all,
    I have already solved the problem. I will declare it again here.
    TSP: is to find a cycle that goes through every node only once and goes back to the start point.
    MySystem: consists of nodes from A, B, C, ...., Z.
    Main Idea: user chooses a number of nodes to find their TSP.
    Ex: User wants to find TSP around A, B, C only.
    Problem: if the shortest path (A to B ) go through another node N, and also shortest path(B, C)go through this very same node N. Then the cycle goes through the node N twice which makes the TSP fail.
    Solution:
    1- Use special type of Floyed(or Dijkstra) which finds the shortest paths between every pair of nodes (n1, n2) (n1, n3) ... . But the special part is that this Floyed method takes an array of the nodes considered by TSP lets say{t1, t2, ...}. And it finds the shortest path between (n1, n2) except that this shortest path doesn't go through any of {t1, t2, t3, ...}.
    2- Now when I apply TSP lets say for {A, B, C} I am sure that shortest path from (A to B) doesn't go through node C, but It can go through some other node n which doesn't belong to {A, B, C} -some other node in the system-
    3- After I get my answer from TSP, if i found that this TSP doesn't pass through any place more than once, this is cool, I did it. But if it does pass through the node n more than once. (Here is the trick) I apply TSP for {A, B, C, n} by this way I ll start again whit the special Floyed making sure that every shortest path doesn't pass through n. And when I go for the real TSP the node n won't be passed through twice.
    I hope I was able to declare the problem and the solution,
    Thx a lot guys,
    ES_Coders

  • Graph algorithm concerning colors

    Hi, all.
    Suppose we have a rectangle of width w and height h, which has w*h square grids. At any time each grid can either be empty or be occupied by a colored square. Whenever l squares in a series (horizontal, vertical or diagonal) have the same color, we call them "connected". Note l here is a variable. So I need an algorithm to find out all such connected squares.
    I think it is a question in the graph theory field. Anyone got a hint or an idea for me? Many thanks.

    But I'm still not so clear about how to resolve my
    problem. Suppose BFS is used, do you mean I should
    start at any vertex and search for adjacent vertex
    that has the same color with the current one, and
    iterate like this? If so, I have to apply this
    procedure on each occupied grid. Did I go right? If
    not, could you be more specific?Let's say this is a Grid which exists of a List of Cells.
    [y]
    5 (o)-(o)-(o)-(o)-(o)
        |   |   |   |   |
    4 (o)-(o)-(x)-(o)-(o)
        |   |   |   |   |
    3 (o)-(x)-(x)-(x)-(o)
        |   |   |   |   |
    2 (o)-(o)-(x)-(o)-(o)
        |   |   |   |   |
    1 (x)-(x)-(x)-(x)-(o)
        1   2   3   4   5 [x]A Cell has (at least) the following methods:
    - left(), returns the Cell on the left side of this Cell (or null if x = 1)
    - right(), returns the Cell on the right side of this Cell
    - up(), ...
    - down(), ...
    Say we want to examine all connected Cells with the x-color, starting at (1,1),
    add that first Cell in a List and perform a BFS on the Grid:
    List<Cell> connected = new ArrayList<Cell>();
    connected.add(Grid.getCell(1, 1));
    BFS(connected);A BFS would look a bit like this:
    void BFS(List<Cell> visited) {
      // Get the last Cell in the List
      Cell last = visited.get(visited.size()-1);
      // Get all connected Cells
      Cell left = last.left();
      Cell right = ...
      // If the left Cell is not null, if it's the same color
      // as the last node, and if it's not already in your visited-
      // list: add it and perform a BFS on the new visited-list.
      if(left != null && last.color.equals(left.color) &&
         !visited.contains(left)) {
        visited.add(left);
        BFS(visited);
    }Hope it's of help to you.
    Good luck.

  • Bi publisher dual graphs

    Hi,
    I'm using BI Publisher and I'm trying to create a bar graph combined with a line graph (within the same graph)
    The BI Beans DTD does not seem to have an graph type for this. Is this possible?

    Thanks. Is there any further documentation or tutorials on this? I've looked all over the internet and there is hardly anything on combination graphs. The syntax for the template seems to be guesswork for me at the moment.... any good pointer will be great!

  • Graph Algorithm Research Tool (GART)

    In reference to this thread:
    http://forum.java.sun.com/thread.jspa?forumID=426&threadID=435407
    around reply 20 I mentioned a Graph API but never gave a URL where
    it can be accessed, mainly because it wasn't ready.
    Well, it has just been released as part of a demo application called
    Gart Demo, available at:
    http://www.graphbuilder.com

    Java's Stack extends Vector, so you can insert objects in Java's stack in other positions, not just the top. The Stack in the com.graphbuilder.struc package extends LinkedList. Both stacks (com.graphbuilder.struc and java.util) don't add any additional functionality. The only advantage of extending linked list would be for cases where you need to add or remove something to the bottom without a penalty.
    I did a lot of testing on this in terms of speed. If you need speed, then using an array based stack is much faster. In fact, if you really need speed then you use your own array and maintain your own counter.
    i would like to see an API of the collection that follows the data structure definition.This is kind of like saying, "I only want 3 methods because that is what I was taught was a stack". I agree that the concept of a stack is typically 3 methods, but the implementation of a stack is built on top of either an array or linked list.

  • Does HP Pavilion p7-1154 support AMD Dual Graphics?

    I have a Pavilion p7-1154 - Serial no.{Removed for privacy} - The motherboard is an AAHD3-HB (stock MB) made by Pegatron. I have upgraded the stock RAM from 6 GB of 1333 to 16 GB of Corsair Vengence 1600 and upgraded the processor from an AMD A6 3600 to an AMD A8 3850, all according to the upgrade guide for this machine from HP. I've also upgraded the PSU from the stock 300w to a Corsair 500w 80Plus Bronze certified PSU.
    Now that's what I'done so far - what I want to know is does the MB (AAHD3-HB) support AMD Dual Graphics, using the suggested graphics cards, I would like to use a Radeon 6670 GPU.
    Mike
    This question was solved.
    View Solution.

    Mike, after consulting with other members, I believe that dual graphis is not available since it is not noted in the specs. 
     However, here is a Youtube video about the CPU.  If you do find that you were able to use it by a BIOS change, please share that information with the forum.  Thanks!
    Please click "Accept as Solution" if your problem is solved.
    Signature:
    HP TouchPad - 1.2 GHz; 1 GB memory; 32 GB storage; WebOS/CyanogenMod 11(Kit Kat)
    HP 10 Plus; Android-Kit Kat; 1.0 GHz Allwinner A31 ARM Cortex A7 Quad Core Processor ; 2GB RAM Memory Long: 2 GB DDR3L SDRAM (1600MHz); 16GB disable eMMC 16GB v4.51
    HP Omen; i7-4710QH; 8 GB memory; 256 GB San Disk SSD; Win 8.1
    HP Photosmart 7520 AIO
    ++++++++++++++++++
    **Click the Thumbs Up+ to say 'Thanks' and the 'Accept as Solution' if I have solved your problem.**
    Intelligence is God given; Wisdom is the sum of our mistakes!
    I am not an HP employee.

  • A problem about the compression of directed graphs

    Right now I encountered a problem in my research that is about graph compressing (or contraction, etc.). I've searched in various ways for existing techniques on this problem and found nothing. I've been trying to figure out this problem by myself. However I would also like to seek some advice from you guys.
    The description of this problem:
    Given a directed graph G = (V, E) where V is the set of vertices and E
    is the set of directed edges. These vertices and directed edges
    represent the events and the directional relationships between pairs of
    events. Each edge is associated with a weight (or confidence score)
    which indicates the degree of the relationship. Now I want to compress
    the graph by merging some of the vertices into one superior vertex,
    which implies that several lower-level events are merged into one
    high-level event (this is mainly because the extent of news events
    defined are usually flexible). After that we can reorganize the
    vertices and edges and repeat this process until the size of the graph
    reaches a certain limit. Purely looking from the point of graph theory,
    is there any existing graph algorithm that solves this problem? As far as I have searched, the answer seems to be negative.This seems to be an interesting novel problem which falls in the area of graph algorithms. Could you suggest anything? Attached is a sample directed graph of such a kind which may be interesting.
    Check this URL to find out more about this kind of DAG:
    http://ihome.cuhk.edu.hk/~s042162/2005-05-24.jpg
    Thank you very much for your time and help.
    Regards,
    Daniel

    Sounds like an interesting problem. The temporal aspect presents an interesting wrinkle. Graph models have been becoming popular for the standard clustering problem recently, but they are typically undirected formulations. The idea of compressing a graph reminded me of work done by G. Karypis and V. Kumar on graph partitioning, some of their papers are available here:
    http://www-users.cs.umn.edu/~karypis/publications/partitioning.html
    SImilar to the reference given by matfud, with the additional restriction that there may be a size restriction on the size of the partitions or there may be multiple partitions (both restrictions make the problem NP-complete, IIRC).
    There's also the area of spectral graph partitioning which may be of interest. Its a way of finding relatively dense areas in a graph by using the eigenvalues of the adjacency matrix. Most of the results in this area are dependent on the fact that adjacency matrices for graphs are symmetric and semi-definite, which wouldn't be the case for a directed graph, but could be worth some experimentation if you have MATLAB or something similar.
    There's something else this problem reminds me of, but I can't think of it right now. Maybe later something will come to me.
    Good luck.

  • [svn] 1176: compiler: moving all the graphing classes to...

    Revision: 1176
    Author: [email protected]
    Date: 2008-04-10 10:38:20 -0700 (Thu, 10 Apr 2008)
    Log Message:
    compiler: moving all the graphing classes to... the util.graph package (ala asc)!
    Bugs: n/a
    QA: No
    Doc: No
    Modified Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/CompilerAPI.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/swc/SwcMovie.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/linker/ConsoleApplication.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/linker/DependencyWalker.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/linker/FlexMovie.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/linker/SimpleMovie.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/tools/oem/Project.java
    Added Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Algorithms.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/DependencyGraph.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Edge.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Graph.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Vertex.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Visitor.java
    Removed Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/DependencyGraph.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/Algorithms.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/Edge.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/Graph.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/Vertex.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/Visitor.java

    We had this same case. I used web adi to moved the the classes to the right catalogues/offerings. Use the OTA_EVENT_API.UPDATE_CLASS procedure and OTA_EVENTS_V view to get all class listings. Find the right activity_version_id and parent_offering_id of the catalogue you want the classes to moved to. Use this values to change the values of the activity_version_id and parent_offering_id of the classes you will be moving.

  • [svn] 1183: compiler: Finished off generics warnings in graph, they' re bulletproof now (as long as they're not rounds of depleted uranium).

    Revision: 1183
    Author: [email protected]
    Date: 2008-04-10 14:10:12 -0700 (Thu, 10 Apr 2008)
    Log Message:
    compiler: Finished off generics warnings in graph, they're bulletproof now (as long as they're not rounds of depleted uranium).
    * Improved the generics in other places and took advantage of enhanced for loops in some nasty iterators
    Bugs: n/a
    QA: Yes, I'm done with the cleanup so it's a good time to run the suite and see what damage I have done!
    Doc: No
    Modified Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/Assets.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/CompilerAPI.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Algorithms.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/DependencyGraph.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Edge.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Graph.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Vertex.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/graph/Visitor.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/linker/ConsoleApplication.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/linker/SimpleMovie.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/tools/CompcPreLink.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/tools/Mxmlc.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/tools/oem/Project.java

    Did you read the comments, either on the AUR page or in the output that you posted? They explain it.

  • Blossom code for edmond's algorithm(maximum matching)

    Hi, can anybody tell me if and where I can find the complete sourcecode for edmond's algorithm?
    I'm searching the part of the blossom procedure....if anyone has it, please inform me by mail...
    Thanks
    El_griego([email protected])

    Thanks.This is the whole algorithm but unfortunately
    it is not yet implemented the blossom
    procedure.Can you send me the link?Unfortenatelly I could't find an implementation of the Edmonds' Blossom algortihm. I did find an article about efficient graph algorithms here where on pages 145/146 there's given a pseudo-code version of the algorithm.
    Good luck.

  • Google method or algorithm

    Hi guys,
    i would like to know which method or algorithm does Google use to recognise the user input and then match it accordingly.
    Thank you

    Hi,
    I tried Googles description, but it�s quite confusing
    for a well it-related person.
    So here is my short description:
    Google uses g besides the well-known indexers, straight-forward fast Graph-Algorithms.
    Google searches through the internet and interprets the
    Net as a big Graph (with vertices and edges you know?)
    A Vertice is a web-site or a single displayable object.
    The edges are the Links between them.
    Every vertice has a special ranking score.
    Better sites with the same related keywords, will be found
    through this alg.
    e.G. Remember a good page A with the rank r.
    A better page B on the same topic with the rank q links to
    page A. So the rank of page A is pushed to something like
    that: new Rank r = old Rank r + (CONST*q).
    So know it�s quite easy to find a "good" site: Get sites
    with the keyword, and sort by ranking.
    The real implementation is a little more complex, so this
    is that you get an idea.
    moZart

  • Algorithm resources

    Hi,
    I was hoping that someone would be able to point me in the direction of finding some information on how to implement popularly used algorithms (especially, graph drawing algorithms) in Java,
    Thanks for any help in advance

    Hi!
    You should take a look at http://www.yworks.de ! They implemented a framework for graph visualization called yFiles and also have a demo for animated graph algorithms on their site.

  • Need a lot of custom JComponents, but Java just too 'slow', other Solution?

    Hi folks,
    first of all i'll try to explain my problem (although my english is quite bad)
    We're programming a tool for visualising graph algorithms (df search, strong connected components, transitive reduction etc.) For that, we got a drawing area (derived from JLayeredPane) which contains the Nodes and the Edges of a graph (for all that don't know what a graphs is, just imagine these nodes as numbered circles, and the edges as directed lines from one node to another).
    Both parts (Nodes and Edges) are derived from JComponent, because a) need MouseEvents on these Components and b) we need the ability to add them to a container (like JLayeredPane)
    An absolute requirement is that you can directly click on the edges (to mark them, or delete them etc)
    Another point which needs to be mentioned, the edges maintain a (invisible) polygon which lies around their line, this polygon is sensitive for mouseEvents.
    Now there are two main problems:
    * all these edges have (due to JComponent) (possibly) huge invisible rectangles (the only thing that really matters is the line from one corner of this rect. to the other) ...so if i got lets say a graph with 10.000 edges, there are a lot of edges that overlap (nearly 10.000 :) ) ... but only the Edge-object on top receives the MouseEvent (but perhaps the user wanted to cklick a edge that lies below the top-edge!) .. at the moment, the program looks at all edges below that which received the MouseEvent and checks wether the 'mouse'click' hits a polygon, If it does, the top edge dispatches the MouseEvent to that edge. (furthermore, due to the depth-order in a Layer of a JLayeredPane, we only need to look at all edges that are really below the egde that received the mouseEvent)
    This all works great for 'small' numbers of edges (approximately 1000-2000) but with a rising number of edges this attempt gets slower and slower (it takes 1-3 seconds to evaluate a single mouseclick on a Sun Ultra 5/333)
    * the bigger problem is, that if i got 10k+ JComponents in a Container Java gets really slow, just adding these 10k JComps. (to the JLayeredPane) takes some minutes?! Furthermore java consumes up to 200+ MB main memory in this situation.
    One solution we are currently thinking about is to implement these edges as 'pure graphics'-objects (for example the Container just draws all edges).. this probably solves problem # 2 but # 1 gets even worse (no depth-order, some more coordinates hassle)
    So, i hope someone can give me a hint for this problem or someone has had a similar problem before and has a good solution? (if the problem isnt clear, just ask)

    I worked on an application once that had a similar structure as yours, but we were only scaling up to about 1000-2000 components. The problem that we identified (and that you have, no doubt, also identified) is that you are searching all of the child components on every hit test/overlap test. What we did was to subdivide out outermost container so that it had a couple of dozen children, each of which then parented some of the original child components: this cut our search space for every hit test dramatically. We had the advantage of having collections of child componenents that we knew would not overlap so our first level containers did not overlap -- you may need your first level containers to overlap, but even with this, you'll still be able to much more quickly identify components in the immediate region that should be checked individuall.

  • G505s cpu problem

    Hi !
    I have prob. with my cpu A8-4500M
    in windows it is core speed about 2,3Ghz but when i launch any game it drops to 1,77Ghz-1,86Ghz and then even to 0,88Ghz! (i tried so many oprions in graph. options..), and goes up to 1,77Ghz and later again drop down ... All drivers are up to date, and also i want to ask about my graph card, i read a lots of topic here about "dual graph" in these series nb. (now im running win 8, and i tried it on w7 too..)
    My lenovo nb is 59393085.
    And im sorry for my low language skills
    //edit: 
    Also i was trying to overclock it myself via amd overdrive but it said " AMD OverDrive failed to start"
    That temp. is just too much, right after booting system?  And be4 i reinstall it,  it works fine even with that tempr.
    http://valid.x86.fr/ddpgst

    I think it is a basic lack of understanding of the APU concept that is throwing a lot of people off course.  They wrongly assume that they can enable or disable features of the Graphics side of the APU chip as they would a normal dedicated card.
    APU = CPU and GPU on same die, not discrete graphics.  Minimal adjustments to can be made to APU just as you would with normal CPU only.  If anyone wants better performance wih more customizable options, add a discrete graphics card and disable the APU graphics.
    Also - APU will run hotter than CPU's of the same speed due to the inclusion of the GPU onto the core platform, as you have a warm CPU and a warmer GPU under the same hood, side by side.  Intel HD graphics are buried into the CPU core, not a seperate chip on the same die.  They run cooler, but are less powerful and you can not expect good gaiming performance from them.
    APU notebook chips are going to be less powerful gaming rigs than deskops, but better than intel mobile chips with HD graphics would be.  The APU is the crossover vechice of the computing world...

Maybe you are looking for

  • Download PDF file from APP server!

    Hi! Has anyone tried uplaoding and downloding a PDF table from app server as I tried from a normal method by Open dataset, Transfer but it wont work. Please provide any inputs. Thanks.

  • User exit/ BADI ME*N

    Hello, first the situation and then my question. I have to implement a search help exit on knttp. I know the search help and have implemented the exit. Know i need proccesing data in the exit of the purchase. For example: I start ME22N, then i push F

  • Apple's in-house, weather application has serious problems.

    8.1.2 Location Services:  Enabled Weather app:  Always System Services:  Enabled Location-Based Alerts:  Enabled Location-Based iAds:  Enabled Share My Location:  Enabled Frequent Locations:  On Frequent Locations:  Enabled The Location Services for

  • JQuery Mobile with Adobe Spry?

    Hi everyone, I'd like to use a Spry dataset in a jQuery Mobile page. At the moment it doesn't work, only displaying the field names instead of actual data. It seems like nothing Spry works on the page, I wondered if the two are compatible? I created

  • Reusable business components not found

    Hi, We have had this problem sporatically for quite some time now. We are using JDev 11.1.2.1.0 and are importing our business components as a jar file. We will work on our application for days and then out of the blue we receive this error when we r