Follow-up of a 3D chart

Hey all,.

I have an AE issue, can you help me, and / or give me a good phrase to search for?

"The vector masks in AE track" or "Points of graphics in the anchor 3D camera Tracker?

I want to superimpose this limit of the property I have film (fly) 180 degrees around it.

I am attaching a video link, read the comments below on the video page.

Thanks much for any direction you guys might have.

Here's the video clip:

https://Vimeo.com/123508236

Here is a screenshot:

Screen Shot 2015-03-28 at 1.10.34 PM.png

Here's the line of property following the slope... then... It IS recognizing the follow-up points. I just need to be able to pin/anchor areas.

(have not tried to fix the lens distortion in the images)

Screen Shot 2015-03-28 at 1.24.33 PM.png

Point of everything lining up that's finally what I turn to, here on a Google Earth image (which I can't use obviously):

Screen Shot 2015-03-28 at 1.35.47 PM.png

Software:

All CC 2014 Suite

System:

Mac Pro end of 2013

10.10.2 Yosemite

3.5 GHz 6-Core Intel Xeon E5

64 GB 1866 MHz DDR3 ECC

AMD over-pants D500 3072 MB

The problem you are having is that the ground is not flat and your chart is. What you need is an accurate 3D model of the terrain that you can apply a texture mapped to projection. It is extremely difficult to do in AE. Let explain me with something as simple as a cube. Let's say you have a camera move around a cube and you want to add a graphic that surrounds the cube. The only way you can do exactly this is to project or line up your chart with each face of the cube. Inside AE, we have a tracker pretty good camera. When follow you your shot and then hover over the track points, you'll see targets at all sorts of angles. Points of identification on the flank of a Hill will give you a target that is placed on the side of the Hill so it looks distorted or at an angle. When the ground is flat, you get a target that is at a different angle. You need to do to get your chart stick at each point is to generate a 3D model accurate to the ground then use map projection to ask the card on the field.

There are two ways to generate the map. The first is to use an isometric view of the property (no perspective) as a satellite image from Google Maps. The second is to draw your specific of a still image of your film property and use this view as the starting point. The first way is preferable.

The second step is to build an accurate model of the ground using software like Photo Scan that I used for similar projects. Using about 100 images of an aerial video you can generate a 3D model and then apply a texture plate to the model, then export only the card as a 3D model and then combine the images and the 3D model of the card in AE using camera tracker.

You can also use a program called Syntheyes do essentially the same thing.

The long answer to your question, is that he will take more than a few software and a lot of research to do this project correctly. The short answer is that this is impossible with precision in AE with the tools provided by Adobe.

Another Option would be to take a glance to the Blender or 3D paid C4D applications and make your follow-up to the camera and the 3D model and the map projection inside this application. I did some pretty complicated Camera Tracking and modeling in a blender.

I thought about another option. You can dig up a topographical map of the region and which allows to create a FreeForm Pro travel card then use projection mapping to your card for the free form of layer and that trace to the camera. Here is a tutorial of Freeform Pro Map Projection... How to distort a VFX Garage door | Courage

Tags: After Effects

Similar Questions

  • to_char (month) for a chart order

    Hello

    I used the following query to display a chart element in the APEX. I was wondering what would be the best way to order by the output so that the months appear in an orderly manner.

    (the code)
    SELECT NULL
    TO_CHAR (MA. DATE_LOGGED, "LUN")
    COUNT (*) parts
    Of
    Table 1 A ma, el table2
    WHERE
    JAI ERROR = EL. ERROR
    AND MY. ERROR IS NOT NULL
    AND EL. ERROR_TYPE = 'P '.
    TO_CHAR GROUP (MA. DATE_LOGGED, "LUN")
    ORDER BY 2
    I am on 11g.
    
    Thanks,
    Sun                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

    Frank's suggestion will only work if you GROUP BY and ORDER BY

    SELECT NULL
    , TO_CHAR(MA.DATE_LOGGED,'Mon')
    , COUNT(*) Parts
    FROM
    table1 ma, table2 el
    WHERE
    MA.ERROR = EL.ERROR
    AND MA.ERROR IS NOT NULL
    AND EL.ERROR_TYPE = 'P'
    GROUP BY TO_CHAR(MA.DATE_LOGGED,'Mon'),
      trunc(ma.date_logged, 'Month')
    ORDER BY  trunc(ma.date_logged, 'Month');
    

    Published by: stew Ashton on 11 June 2012 15:19

  • What is the parent resource ID in the Gantt resource chart?

    Hello everyone,

    Sorry if this question seems silly. I'm trying to create a Gantt chart of resource from a database table. I mentioned this page ' http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21674/bldapp_chrt.htm#BCEIJJID "for more information, but I see the following there:

    «The Gantt resource charts require a resource resource name, id of parent resource id, actual start date and the value of actual end date for each task.» To create a Gantt chart of the resource, create a Flash chart and provide a SQL query using the following syntax:

    SELECT the link, id_ressource, resource_name, resource_parent_id, actual_start_date, actual_end_date
    Of...
    "

    What is the parent resource ID? I can't find it. Is it also necessary? Can I create a Gantt chart without it?

    Thank you
    Mohamed

    Hi Mohamed,

    To answer your questions:

    Q: what is the parent resource ID?
    REP. : In your data, you can have certain tasks that are associated with another task i.e. parent child tasks to a task. This association must be held to a column in your database table, for example PARENT_ID. The value contained in the PARENT_ID column would be the ID of the parent task that is associated with the current task. For example, on this page - http://apex.oracle.com/pls/apex/f?p=36648:86 - you can see that the 2nd task, "Request for Update Wizard", is a child of the node parent 'Integration of graphics' and that association is based on the value stored in the column PARENT_ID of my sample table.

    Q: is it required? Can I create a Gantt chart without it?
    REP. : No, it is not required. However, the syntax of the query must include PARENT_ID, which you can of course set to NULL, as you can see in the following example:

    SELECT NULL LINK,
           RESOURCE_ID ID,
           TASK_NAME NAME,
           NULL PARENT_ID,
           START_DATE ACTUAL_START,
           END_DATE ACTUAL_END
    FROM   TASKS 
    

    Here is another example of query, where you can see that the PARENT_ID is set. In this case, we want to represent a hierarchical list of tasks

    SELECT 'f?p=4000:2:'||:APP_SESSION||':::P2_ID:'||ID LINK
           RESOURCE_ID ID,
           RESOURCE_NAME NAME,
           PARENT_ID PARENT_ID,
           START_DATE ACTUAL_START,
           END_DATE ACTUAL_END
    FROM   TASKS
    

    I hope this helps clarify things.

    Kind regards
    Hilary

  • Need help with graph/table

    Heey everybody,

    I am currently using a Spider8 and Labview to get data from the sensors, after I use Labview to process the data in charts or graphs. Alltough I have 2 small problems using a table/chart:

    1: for some graphics I want to use 1 y axis (example: volts or current) and 1 x-axis, time. I want this time to be like clockwork that counts only the seconds (example: 0-100 sec), using absolute time or relative, for formatting is not an option because they rely much too strong/fast. There is an example of this type of charts in the Appendix: measurement of time current vs.

    2: for most of the other tables/graphs I want to use several axis y (example for a motor: current, RPM and torque) and I want to use a category axis that may go 'back' (example for a motor: rotations). There is an example of this type of charts in the Appendix: measurement of torque.

    I have no idea how to make good sense, so your help is welcome

    Thank you!

    Hi grasman,.

    have you read jcarmodys message on how to apply a trace on a scale there?

    See the attachment on how to draw 2 curves on a xy chart and attach each parcel on a scale. I strictly followed the message context help chart and jcarmodys...

    I would also say to stay away from express screws: they tend to make more problems than to provide aid. You are more involved in conversions of type (to/from DDT) - using simple son gives you simply more to control what's happening in your code!

  • How to add multiple lines when the button is clicked

    How to add multiple lines when the click on button now is just add a row .plz give me idea how... waiting for answer

    / public final class screen extends MyScreen
    {
    /**
    * Creates a new object of MyScreen
    */
    ObjectChoiceField obj1 obj2, obj3, obj4.
    Table of String() = {'101 ', ' 102'};
    String of shadow [] = {"Shade1", "Shade2"};
    Rolls of string [] = {'101 ', ' 102'};
    String cutting [] = {"100-150", "150-200"};
    Chain of selectedindex1, selectedindex2, selectedindex3, selectedindex4;
    LabelField lbl1 lbl2, lbl3, lbl4;
        
    GFM LinedGridFieldManager;
    HFM HorizontalFieldManager, hfm1, hfm2 hfm3;
    VerticalFieldManager vfmMain;
        
    public MyScreen()
    {
        
    Set the displayed title of the screen
    hfm1 = new HorizontalFieldManager (HorizontalFieldManager.NO_VERTICAL_SCROLL |) HorizontalFieldManager.NO_VERTICAL_SCROLLBAR);
    hfm2 = new HorizontalFieldManager (HorizontalFieldManager.NO_VERTICAL_SCROLL |) HorizontalFieldManager.NO_VERTICAL_SCROLLBAR);
    hfm3 = new HorizontalFieldManager (HorizontalFieldManager.NO_VERTICAL_SCROLL |) HorizontalFieldManager.NO_VERTICAL_SCROLLBAR);
    HFM = new HorizontalFieldManager (HorizontalFieldManager.FIELD_RIGHT);
    vfmMain = new VerticalFieldManager (Manager.NO_VERTICAL_SCROLL |) Manager.NO_HORIZONTAL_SCROLLBAR);
            
    obj1 = new ObjectChoiceField ("", graph, 0, FIELD_LEFT);
    obj2 = new ObjectChoiceField ("", blind, 0, FIELD_LEFT);
    Obj3 = new ObjectChoiceField ("", rolls, 0, FIELD_LEFT);
    Obj4 = new ObjectChoiceField ("", cuts, 0, FIELD_LEFT);
            
    LBL1 = new LabelField("");
    LBL2 = new LabelField("");
    lbl3 = new LabelField("");
    lbl4 = new LabelField("");
            
    ButtonField btnAdd = new ButtonField ("ADD", FIELD_RIGHT);
            
    GFM = new LinedGridFieldManager (4, LinedGridFieldManager.VERTICAL_SCROLL);
            
    hfm1.setMargin (20, 0, 10, 0);
    hfm1. Add (new LabelField ("Chart"));
    hfm1. Add (obj1);
    hfm1. Add (new LabelField ("Shade"));
    hfm1. Add (obj2);
            
    hfm2. Add (new LabelField ("Rolls"));
    hfm2. Add (Obj3);
    hfm2. Add (new LabelField ("Cuts"));
    hfm2. Add (Obj4);
    HFM. Add (btnAdd);
            
    GFM. Add (new LabelField ("Chart"));
    GFM. Add (new LabelField ("Shade"));
    GFM. Add (new LabelField ("Rolls"));
    GFM. Add (new LabelField ("Cuts"));
            
    vfmMain.add (hfm1);
    vfmMain.add (hfm2);
    vfmMain.add (hfm3);
    vfmMain.add (hfm);
    vfmMain.add (new SeparatorField());
    vfmMain.add (gfm);
    Add (vfmMain);
            
    btnAdd.setChangeListener (new FieldChangeListener()
    {
    ' Public Sub fieldChanged (field field, int context) {}
    TODO self-generating method stub
    selectedindex1 = chart [obj1.getSelectedIndex ()];
    selectedindex2 = shade [obj2.getSelectedIndex ()];
    selectedindex3 = rolls [obj3.getSelectedIndex ()];
    selectedindex4 = cuts [obj4.getSelectedIndex ()];
                    
    While (LBL1. GetText(). Equals("") | LBL2. GetText(). Equals("") | lbl3. GetText(). Equals("") | lbl4. GetText(). Equals(""))
    {
    LBL1. SetText (selectedindex1);
    LBL2. SetText (selectedindex2);
    lbl3. SetText (selectedindex3);
    lbl4. SetText (selectedindex4);
                    
    GFM. Add (LBL1);
    GFM. Add (LBL2);
    GFM. Add (lbl3);
    GFM. Add (lbl4);
                    
    }
    }
    });
    }
    }

    Hi Piya,

    I run your code, and according to your logic that it works correctly.

    It's adding that line only once because according to your logic that one line can be added to MDT, if you do not want to add line on each click on the button, follow these steps:

    selectedindex1 = chart [obj1.getSelectedIndex ()];
    selectedindex2 = shade [obj2.getSelectedIndex ()];
    selectedindex3 = rolls [obj3.getSelectedIndex ()];
    selectedindex4 = cuts [obj4.getSelectedIndex ()];

    Lbl1 LabelField = new LabelField("");
    Lbl2 LabelField = new LabelField("");
    LabelField lbl3 = new LabelField("");
    LabelField lbl4 = new LabelField("");
    If (LBL1. GetText(). Equals("") | LBL2. GetText(). Equals("") | lbl3. GetText(). Equals("") | lbl4. GetText(). Equals(""))
    {
    LBL1. SetText (selectedindex1);
    LBL2. SetText (selectedindex2);
    lbl3. SetText (selectedindex3);
    lbl4. SetText (selectedindex4);
                    
    GFM. Add (LBL1);
    GFM. Add (LBL2);
    GFM. Add (lbl3);
    GFM. Add (lbl4);
                    
    }

  • Overplot different tables

    Copy the following code draws a line chart and clicking on the button "Add series", he adds a ScatterChart

    It seems all ok, but just move scene left/right or up/down (left mouse click and drag) two X, Y axis and the graphics are moved.

    How do I fix this code in order to obtain always the axis and the two overlap?

    Thank you.
    import java.util.Set;
    import javafx.application.Application; 
    import javafx.beans.property.SimpleDoubleProperty; 
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler; 
    import javafx.geometry.Side;
    import javafx.scene.Group;
    import javafx.scene.chart.NumberAxis; 
    import javafx.scene.chart.XYChart; 
    import javafx.stage.Stage; 
    import javafx.scene.Scene; 
    import javafx.scene.Node; 
    import javafx.scene.chart.*; 
    import javafx.scene.control.Button;
    import javafx.scene.input.MouseEvent; 
    import javafx.scene.layout.BorderPane; 
    import javafx.scene.layout.StackPane;
    
    public class RescalingSeries extends Application {
    
    StackPane               mainGraphStackPane = null;
    Button btnAdd;
    BorderPane pane; 
    
    XYChart.Series series1 = new XYChart.Series(); 
    
    SimpleDoubleProperty rectinitX = new SimpleDoubleProperty(); 
    SimpleDoubleProperty rectinitY = new SimpleDoubleProperty(); 
    
    protected static Axis _duplicateAxis(Axis axis, Axis result) {
    
            result.setAnimated(axis.animatedProperty().get());
            result.setAutoRanging(axis.isAutoRanging());
            result.setLabel(axis.getLabel());
            result.setSide(axis.getSide());
            result.setTickLabelFill(axis.getTickLabelFill());
            result.setTickLabelFont(axis.getTickLabelFont());
            result.setTickLabelGap(axis.getTickLabelGap());
            result.setTickLength(axis.getTickLength());
            return result;
        }
     
        protected static ValueAxis _duplicateValueAxis(ValueAxis axis, ValueAxis result) {
            _duplicateAxis(axis, result);
            result.setLowerBound(axis.getLowerBound());
            result.setUpperBound(axis.getUpperBound());
            result.setMinorTickCount(axis.getMinorTickCount());
            result.setMinorTickLength(axis.getMinorTickLength());
            result.setTickLabelFormatter(axis.getTickLabelFormatter());
            return result;
        }
     
        /**
         * Duplicate a number axis.
         * @param axis The source axis.
         * @return A {@code NumberAxis}, never {@code null}.
         */
        public static NumberAxis duplicateNumberAxis(NumberAxis axis) {
            NumberAxis result = new NumberAxis();
            _duplicateValueAxis(axis, result);
            result.setTickUnit(axis.getTickUnit());
            result.setForceZeroInRange(axis.isForceZeroInRange());
            return result;
        }
     
        /**
         * Duplicate a category axis.
         * @param axis The source axis.
         * @return A {@code CategoryAxis}, never {@code null}.
         */
        public static CategoryAxis duplicateCategoryAxis(CategoryAxis axis) {
            CategoryAxis result = new CategoryAxis(axis.getCategories());
            _duplicateAxis(axis, result);
            result.setStartMargin(axis.getStartMargin());
            result.setEndMargin(axis.getEndMargin());
            result.setGapStartAndEnd(axis.gapStartAndEndProperty().get());
            return result;
        }
     
    @Override 
    public void start(Stage stage) { 
        
        final NumberAxis xAxisLC = new NumberAxis(1, 12, 1); 
        final NumberAxis yAxisLC = new NumberAxis(0.53000, 0.53910, 0.0005);
        yAxisLC.setSide(Side.RIGHT);
     
        yAxisLC.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxisLC) { 
     
            @Override 
            public String toString(Number object) { 
                return String.format("%7.5f", object); 
            } 
        }); 
     
        final LineChart<Number, Number> lineChart = new LineChart<>(xAxisLC, yAxisLC); 
     
        lineChart.setCreateSymbols(false); 
        lineChart.setAlternativeRowFillVisible(false); 
        lineChart.setAnimated(true); 
        lineChart.setLegendVisible(false);
    
        series1.getData().add(new XYChart.Data(1, 0.53185)); 
        series1.getData().add(new XYChart.Data(2, 0.532235)); 
        series1.getData().add(new XYChart.Data(3, 0.53234)); 
        series1.getData().add(new XYChart.Data(4, 0.538765)); 
        series1.getData().add(new XYChart.Data(5, 0.53442)); 
        series1.getData().add(new XYChart.Data(6, 0.534658)); 
        series1.getData().add(new XYChart.Data(7, 0.53023)); 
        series1.getData().add(new XYChart.Data(8, 0.53001)); 
        series1.getData().add(new XYChart.Data(9, 0.53589)); 
        series1.getData().add(new XYChart.Data(10, 0.53476)); 
        series1.getData().add(new XYChart.Data(11, 0.530123)); 
        series1.getData().add(new XYChart.Data(12, 0.531035)); 
       
        pane = new BorderPane(); 
        pane.setCenter(lineChart);
        mainGraphStackPane = new StackPane();
        mainGraphStackPane.getChildren().add(pane);
        Scene scene = new Scene(mainGraphStackPane, 800, 600); 
        lineChart.getData().addAll(series1); 
             
        stage.setScene(scene);         
    
        scene.setOnMouseClicked(mouseHandler); 
        scene.setOnMouseDragged(mouseHandler); 
        scene.setOnMouseEntered(mouseHandler); 
        scene.setOnMouseExited(mouseHandler); 
        scene.setOnMouseMoved(mouseHandler); 
        scene.setOnMousePressed(mouseHandler); 
        scene.setOnMouseReleased(mouseHandler); 
     
        Group root = new Group();
        btnAdd = new Button();
        btnAdd.setText("Add serie");
        root.getChildren().add(btnAdd);
        pane.getChildren().add(root);              
      
        btnAdd.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {        
                NumberAxis xAxisBC = duplicateNumberAxis(xAxisLC);
                NumberAxis yAxisBC = duplicateNumberAxis(yAxisLC);
                ScatterChart<Number, Number> scatterChart = new ScatterChart<>(xAxisBC, yAxisBC); 
                            
                scatterChart.setAlternativeRowFillVisible(false); 
                scatterChart.setAnimated(true); 
                scatterChart.setLegendVisible(false);
                
                XYChart.Series series2 = new XYChart.Series();
                
                series2.getData().add(new XYChart.Data(1, 0.53185)); 
                series2.getData().add(new XYChart.Data(2, 0.532235)); 
                series2.getData().add(new XYChart.Data(3, 0.53234)); 
                series2.getData().add(new XYChart.Data(4, 0.538765)); 
                series2.getData().add(new XYChart.Data(5, 0.53442)); 
                series2.getData().add(new XYChart.Data(6, 0.534658)); 
                series2.getData().add(new XYChart.Data(7, 0.53023)); 
                series2.getData().add(new XYChart.Data(8, 0.53001)); 
                series2.getData().add(new XYChart.Data(9, 0.53589)); 
                series2.getData().add(new XYChart.Data(10, 0.53476)); 
                series2.getData().add(new XYChart.Data(11, 0.530123)); 
                series2.getData().add(new XYChart.Data(12, 0.531035));
                
                scatterChart.getData().addAll(series2);
                            
                Set<Node> chartNode = scatterChart.lookupAll(".chart-plot-background");
                for(final Node chr : chartNode){
                    chr.setStyle("-fx-background-color: transparent;");                           
                }                                                
                chartNode = lineChart.lookupAll(".chart-plot-background");
                for(final Node chr : chartNode){
                    chr.setStyle("-fx-background-color: transparent");                            
                }
                mainGraphStackPane.getChildren().add(scatterChart);
                
                xAxisBC.lowerBoundProperty().bind(xAxisLC.lowerBoundProperty());
                yAxisBC.lowerBoundProperty().bind(yAxisLC.lowerBoundProperty());      
            }
    });
        
        stage.show(); 
    } 
    
    EventHandler<MouseEvent> mouseHandler = new EventHandler<MouseEvent>() { 
     
        @Override 
        public void handle(MouseEvent mouseEvent) { 
            boolean XScaling=false;
            boolean YScaling=false;
    
           if (mouseEvent.getEventType() == MouseEvent.MOUSE_DRAGGED || mouseEvent.getEventType() == MouseEvent.MOUSE_MOVED ){ 
                LineChart<Number, Number> lineChart = (LineChart<Number, Number>) pane.getCenter(); 
                NumberAxis yAxis = (NumberAxis) lineChart.getYAxis(); 
                NumberAxis xAxis = (NumberAxis) lineChart.getXAxis(); 
    
                double Tgap = xAxis.getWidth()/(xAxis.getUpperBound() - xAxis.getLowerBound()); 
                double newXlower=xAxis.getLowerBound(), newXupper=xAxis.getUpperBound(); 
                double newYlower=yAxis.getLowerBound(), newYupper=yAxis.getUpperBound(); 
        
                double xAxisShift = xAxis.localToScene(0, 0).getX();
                double yAxisShift = yAxis.localToScene(0, 0).getY();
                
                double yAxisStep=yAxis.getHeight()/(yAxis.getUpperBound()-yAxis.getLowerBound());
                double CurrentPrice=yAxis.getUpperBound()-((mouseEvent.getY()-yAxisShift)/yAxisStep);
                
                double Delta=0.3;
                if(mouseEvent.getEventType() == MouseEvent.MOUSE_DRAGGED && mouseEvent.getX()<xAxisShift+yAxis.getHeight() && mouseEvent.getY()<yAxisShift+yAxis.getHeight() && (XScaling==false || YScaling==false)){
                   
      //==================================================== X-Axis Moving ==================================
                    
                    if(rectinitX.get() < mouseEvent.getX()){    
                        newXlower=xAxis.getLowerBound()-Delta;
                        newXupper=xAxis.getUpperBound()-Delta;
                    }
                    else if(rectinitX.get() > mouseEvent.getX()){    
                        newXlower=xAxis.getLowerBound()+Delta;
                        newXupper=xAxis.getUpperBound()+Delta;
                    }    
                    xAxis.setLowerBound( newXlower ); 
                    xAxis.setUpperBound( newXupper ); 
                    
    //===================================================== Y-Axis Moving ====================================
             
                    if(rectinitY.get() < mouseEvent.getY()){    
                        newYlower=yAxis.getLowerBound()+Delta/1000;
                        newYupper=yAxis.getUpperBound()+Delta/1000;
                    }
                    else if(rectinitY.get() > mouseEvent.getY()){    
                        newYlower=yAxis.getLowerBound()-Delta/1000;
                        newYupper=yAxis.getUpperBound()-Delta/1000;
                    }
                    yAxis.setLowerBound(newYlower);
                    yAxis.setUpperBound(newYupper);
                }
    
     //----------------------------- Re-Scale the X-Axis when dragging below it ---------------------------------
              
                else if(mouseEvent.getEventType() == MouseEvent.MOUSE_DRAGGED && mouseEvent.getY()>yAxisShift+yAxis.getHeight() ){
                    if(rectinitX.get() < mouseEvent.getX()){    
                        newXlower=xAxis.getLowerBound()+Delta;
                        newXupper=xAxis.getUpperBound()-Delta;
                    }
                    else if(rectinitX.get() > mouseEvent.getX()){    
                        newXlower=xAxis.getLowerBound()-Delta;
                        newXupper=xAxis.getUpperBound()+Delta;
                    }    
                    xAxis.setLowerBound( newXlower ); 
                    xAxis.setUpperBound( newXupper );           
                }
                
    //--------------------------------- Re-Scale the Y-Axis when dragging to the left of it --------------------------
             
                else if(mouseEvent.getEventType() == MouseEvent.MOUSE_DRAGGED && mouseEvent.getX()> (xAxisShift + xAxis.getWidth())){
                    if(rectinitY.get() < mouseEvent.getY()){    
                        newYlower=yAxis.getLowerBound()-Delta/1000;
                        newYupper=yAxis.getUpperBound()+Delta/1000;
                    }
                    else if(rectinitY.get() > mouseEvent.getY()){    
                        newYlower=yAxis.getLowerBound()+Delta/1000;
                        newYupper=yAxis.getUpperBound()-Delta/1000;
                    }
                    yAxis.setLowerBound(newYlower);
                    yAxis.setUpperBound(newYupper);                
                }             
                rectinitX.set(mouseEvent.getX()); 
                rectinitY.set(mouseEvent.getY()); 
                
                if(mouseEvent.getEventType() == MouseEvent.MOUSE_MOVED && mouseEvent.getY()>yAxisShift && mouseEvent.getY()<yAxisShift+yAxis.getHeight() && mouseEvent.getX()>xAxisShift && mouseEvent.getX()<xAxisShift+xAxis.getWidth()){
    
                double XX=((mouseEvent.getX() - xAxisShift) / Tgap) + xAxis.getLowerBound();
                double YY=CurrentPrice;
                series1.setName(String.format("%.2g%n",XX) + ", " + String.format("%.4g%n",YY));
                }          
             } 
        } 
       }; 
    
    public static void main(String[] args) { 
        launch(args);  
    } 
    }

    In the event handler for your button link you the lowerBoundProperties of axes for your graphics to clouds of points in the corresponding properties for the axes of your chart. However, you also need to bind the upperBoundProperties:

            xAxisBC.lowerBoundProperty().bind(xAxisLC.lowerBoundProperty());
            yAxisBC.lowerBoundProperty().bind(yAxisLC.lowerBoundProperty());
            xAxisBC.upperBoundProperty().bind(xAxisLC.upperBoundProperty());
            yAxisBC.upperBoundProperty().bind(yAxisLC.upperBoundProperty());
    
  • How to draw arrows?

    Copy the following code draws a simple chart of the XYLine
    import javafx.application.Application;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.chart.CategoryAxis;
    import javafx.scene.chart.LineChart;
    import javafx.scene.chart.NumberAxis;
    import javafx.scene.chart.XYChart;
    import javafx.scene.input.MouseEvent;
    import javafx.scene.layout.BorderPane;
    import javafx.stage.Stage;
    
    public class XyChart extends Application {
    
        @Override
        public void start(Stage stage) {
           stage.setTitle("Line plot");
            
           final CategoryAxis xAxis = new CategoryAxis();
           final NumberAxis yAxis = new NumberAxis(1, 21,0.1);
           
           yAxis.setTickUnit(1);
           yAxis.setPrefWidth(35);
           yAxis.setMinorTickCount(10);
               
           yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis){
                @Override
            public String toString(Number object){
                    String label;
                    label = String.format("%7.2f", object.floatValue());
                    return label;
            }
        });
    final LineChart<String, Number>lineChart = new LineChart<String, Number>(xAxis, yAxis);
    
           lineChart.setCreateSymbols(false);
           lineChart.setAlternativeRowFillVisible(false);
           lineChart.setLegendVisible(false);
                   
           XYChart.Series series1 = new XYChart.Series();
            
            series1.getData().add(new XYChart.Data("Jan", 1));
            series1.getData().add(new XYChart.Data("Feb", 4));
            series1.getData().add(new XYChart.Data("Mar", 2.5));
            series1.getData().add(new XYChart.Data("Apr", 5));
            series1.getData().add(new XYChart.Data("May", 6));
            series1.getData().add(new XYChart.Data("Jun", 8));
            series1.getData().add(new XYChart.Data("Jul", 12));
            series1.getData().add(new XYChart.Data("Aug", 8));
            series1.getData().add(new XYChart.Data("Sep", 11));
            series1.getData().add(new XYChart.Data("Oct", 13));
            series1.getData().add(new XYChart.Data("Nov", 10));
            series1.getData().add(new XYChart.Data("Dec", 20));
     
            BorderPane pane = new BorderPane();
            pane.setCenter(lineChart);          
            Scene scene = new Scene(pane, 800, 600);
            lineChart.setAnimated(false);
            lineChart.getData().addAll(series1);       
             
            stage.setScene(scene);
            stage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }   
    }
    I like to shoot arrows on the table by left click of the mouse button and moved, as in this example

    [http://s8.postimage.org/5xgu0j6kl/A02480.png]

    How to do this?

    Thank you!

    Published by: 932518 on November 6, 2012 4.32

    Hello. It is possible to shoot arrows on a chart. Please try the updated example the:

     import javafx.application.Application;
    import javafx.event.EventHandler;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.chart.CategoryAxis;
    import javafx.scene.chart.LineChart;
    import javafx.scene.chart.NumberAxis;
    import javafx.scene.chart.XYChart;
    import javafx.scene.control.Label;
    import javafx.scene.input.MouseEvent;
    import javafx.scene.layout.BorderPane;
    import javafx.scene.paint.Color;
    import javafx.scene.shape.LineTo;
    import javafx.scene.shape.MoveTo;
    import javafx.scene.shape.Path;
    import javafx.scene.shape.Polygon;
    import javafx.stage.Stage;
    
    public class XyChart extends Application {
         Path path;
         BorderPane pane = new BorderPane();
        double startx = 0;
        double starty = 0;
        double endx = 0;
        double endy = 0;
    
        public static void main(String[] args) {
            launch(args);
        }
    
        @Override
        public void start(Stage stage) {
    
            final CategoryAxis xAxis = new CategoryAxis();
            final NumberAxis yAxis = new NumberAxis(1, 21, 0.1);
            yAxis.setTickUnit(1);
            yAxis.setPrefWidth(35);
            yAxis.setMinorTickCount(10);
            yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis) {
                @Override
                public String toString(Number object) {
                    String label;
                    label = String.format("%7.2f", object.floatValue());
                    return label;
                }
            });
            final LineChart lineChart = new LineChart(xAxis, yAxis);
    
            lineChart.setCreateSymbols(false);
            lineChart.setAlternativeRowFillVisible(false);
            lineChart.setLegendVisible(false);
    
            XYChart.Series series1 = new XYChart.Series();
    
            series1.getData().add(new XYChart.Data("Jan", 1));
            series1.getData().add(new XYChart.Data("Feb", 4));
            series1.getData().add(new XYChart.Data("Mar", 2.5));
            series1.getData().add(new XYChart.Data("Apr", 5));
            series1.getData().add(new XYChart.Data("May", 6));
            series1.getData().add(new XYChart.Data("Jun", 8));
            series1.getData().add(new XYChart.Data("Jul", 12));
            series1.getData().add(new XYChart.Data("Aug", 8));
            series1.getData().add(new XYChart.Data("Sep", 11));
            series1.getData().add(new XYChart.Data("Oct", 13));
            series1.getData().add(new XYChart.Data("Nov", 10));
            series1.getData().add(new XYChart.Data("Dec", 20));
    
            pane.setCenter(lineChart);
            Scene scene = new Scene(pane, 800, 600);
            lineChart.setAnimated(false);
            lineChart.getData().addAll(series1);
    
             path = new Path();
              path.setStrokeWidth(1);
            path.setStroke(Color.BLACK);
    
            scene.setOnMouseReleased(mHandler);
            scene.setOnMousePressed(mHandler);
            pane.getChildren().add(path);
            stage.setScene(scene);
            stage.show();
        }
        EventHandler mHandler = new EventHandler() {
            @Override
            public void handle(MouseEvent me) {
    
                if (me.getEventType() == MouseEvent.MOUSE_PRESSED) {
                    startx = me.getX();
                    starty = me.getY();
                    path.getElements().add(new MoveTo(startx, starty));
    
                } else if (me.getEventType() == MouseEvent.MOUSE_RELEASED) {
                    endx = me.getX();
                    endy = me.getY();
                    path.getElements().add(new LineTo(endx, endy));
    
                    Polygon arrow = new Polygon();
                    arrow.getPoints().addAll(new Double[]{
                                0.0, 5.0,
                                -5.0, -5.0,
                                5.0, -5.0});
    
                    double angle = Math.atan2(endy - starty, endx - startx) * 180 / 3.14;
    
                    arrow.setRotate((angle - 90));
    
                    arrow.setTranslateX(startx);
                    arrow.setTranslateY(starty);
    
                    arrow.setTranslateX(endx);
                    arrow.setTranslateY(endy);
    
                    pane.getChildren().add(arrow);
    
                }
    
            }
        };
    }
    
  • How Mark Read only cases based on RadioButton selections

    I have spent the last hour looking through old discussions and found nothing on this subject, so maybe it will help others in the future as well.

    I'm building a dynamic PDF for people at work to use for troubleshooting.  Basically, it follows the same logic flow charts I have already done, but by asking questions and saying technicians what do based on their responses.  Top I have checkboxes which are kind of 'high level questions' that I want to be read-only and that they check automatically as they make their way through the radio buttons.

    My ultimate goal is to integrate this PDF file in our ticketing system and the checkboxes at the top level will show the troubleshooting that has already been accomplished without the technician having read the full PDF to find out what to do next.  If we have to send a technician on site to fix whatever it is she will also act as a report of climbing, to let him know where we could get without him being there.

    I thought this might work, but apparently I don't understand the coding as well as I thought I did.  I hope I'm close lol.

    If {(TestRadio.rawValue == 1)

    Subform1.check1.RawValue = 1;

    }

    else {}

    Subform1.check1.RawValue = 0;

    }

    Any help is greatly appreciated.  If anyone has a PDF file with an example of this work, I'd love to see it.  Thank you very much.

    Mike

    In fact, I just thought to it.  I've been away "" around the values.  Maybe this will help you always someone else, so I'll leave it to the top.  Thank you all!

    If {(TestRadio.rawValue == 1)

    Subform1.check1.RawValue = "1";

    }

    else {}

    Subform1.check1.RawValue = "0";

    }

  • Using the keys of the area by drawing the curve on a calculator and shadow chart 50g

    I missed being able to use the keys of the region on a chart and shadow.

    Y at - it a tutorial to help me with this?

    Hello

    The following may be useful:

    http://resources.Thiel.edu/mathproject/CalculatorLessons/L016.PDF

    50G other tutorials by the same person:

    http://resources.Thiel.edu/mathproject/CalculatorLessons/default.htm

    Best regards.

  • WIN 7 32 BIT DRIVER CHART FOR PAVILION DV9823CL

    I DON'T THINK WIN 7 32 BIT DRIVER CHART FOR PAVILION DV9823CL

    Hello

    You can try the driver from the following link.

    http://laptopvideo2go.com/NVIDIA/195series/19581_win7x32.exe

    Kind regards

    DP - K

  • HP 450: Is that what this laptop contains chart AMD?

    Hello
    I recently bought a laptop which the model has been specified as a simple "450 HP".

    So my question is, my computer contains AMD graphics?
    I tried to install the AMD driver available on the HP site, but it has not been successful. (only intel HD4000 is displayed in Device Manager)

    its basic configuration is the following:

    3230 M I5
    HARD DRIVE 500 GB
    4 GB OF RAM

    It seems to be this one: http://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c03315510

    But the processor does not match. one installed in the present is an i5, whereas the above specifications refer without exceeding i3.

    While the specs mention chart AMD, and drivers are available on the website of official drivers HP450, all my attempts to install the supplied driver (downloaded from HP) failed.
    (he never mentioned material missing. it says ' warnings occurred during installation. ") (please see newspaper"but does not have the button"view log")

    The intel driver installed fine.
    In the device, under 'graphics adapters' Manager, is shown only the hd4000 intel.

    Thanks in advance.
    -Lorenzo

    My system with export information can be found here:

    https://docs.Google.com/document/d/1Oh1TxpLn52x2R3ri4lv9gJuseTjdnrw49MhWxnx_0Cw
    ______________________________________________________________________________________

    Hello again,

    I found the following infromation.

    http://PartSurfer.HP.com/search.aspx?SearchText=E9L71PP

    If your laptop has an AMD graphics card included there should be written here.

    Unfortunately, your laptop does not use an AMD graphics card.

    If I'm right you have this processor:

    http://Ark.Intel.com/products/72164/Intel-Core-i5-3230M-processor-3M-cache-up-to-3_20-GHz-rPGA

    It is a chip Intel® HD Graphics 4000.

    There is another option to determine if you have a graphics chip AMD!

    You might find if available, the ID of the grahpics chip AMD hardware.

    (Use as reference only)

    http://www.WikiHow.com/find-hardware-ID

    That the "View card" menu offers you more as a non-unique hardware?

    Drunks.

  • How to create a continuous XY Chart

    Hi all

    I am very appriciate that could give me a little help on the following problem.

    I intend at the entrance of the 3 groups of data streaming in a XY chart as shown in the left image below. The problem is the XY chart just shows the 10 data points generated in a For loop (see the image on the right), what I need is to show all the data points genereated before I click the STOP button.

    Best regards

    Vincent

    Hello

    Use a shift register with your loop.

    But I'm not sure what you're trying to do is the best thing.

    Why don't you use a chart?

    Kind regards

  • Word chart does not display correctly

    Hello everyone,

    I'm writing a chart in word as a line graph and it is constantly as a bubble chart or a graph group.

    I have attached a picture of the part of my code, where the graphical representation occurs. Is there a problem here, or what is the format of the data? (1st row x all other values of y lines)

    In addition, it displays error - 214... the strange thing that happens sometimes with ActiveX. Can it be fixed by dragging the graph to quit at close report after?

    Thank you

    Anthony

    Copy the following code:

    This graph product

  • ObjectDisposedException with ChartCollection a WPF chart

    When I start the following program (WPF. net4.0, NI.common (13.0.40.190), OR.) Controls.Graph (13.0.40.242)) I get the following in the debugger error message

    ObjectDisposedException was not handled

    The data store has been modified.
    Name of the object: ' Buffer'.

    Source : NI.Common

    I have a device class that generates some milli seconds of random data. I inform my main class through events and then pass the values via the parameter.

    XAML I bind the data graphic to a ChartCollection as follows: (the bold lines are the most relevant)

    The error occurs only when the time of my data provider crosses a certain threshold.

    500 ms - all right

    200ms - works ok, but hangs at the exception, when I change the size of the window

    20 ms - always ok

    10ms - crashes instantly with the exception

    {

    Data = new Data();

    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged (string propertyName)
    {
    var Manager = PropertyChanged;
    If (Manager! = null) Manager (this, new PropertyChangedEventArgs;
    }

    Private ChartCollection _chartCollection1 = new ChartCollection(1000);

    private ChartCollection = new ChartCollection_chartCollection2 (1000);
    private ChartCollection = new ChartCollection_chartCollection3 (1000);
    private ChartCollection = new ChartCollection_chartCollection4 (1000);

    public ChartCollection Chart1
    {
    get {return _chartCollection1 ;}
    set
    {
    If (_chartCollection1.Equals (value))
    {
    return;
    }

    _chartCollection1 = value;
    OnPropertyChanged ("Chart1");
    }
    }

    public ChartCollection Graph2
    {
    get {return _chartCollection2 ;}
    set
    {
    If (_chartCollection2.Equals (value))
    {
    return;
    }

    _chartCollection2 = value;
    OnPropertyChanged ("Graph2");
    }
    }
    public ChartCollection Graph3
    {
    get {return _chartCollection3 ;}
    set
    {
    If (_chartCollection3.Equals (value))
    {
    return;
    }

    _chartCollection3 = value;
    OnPropertyChanged ("Graph3");
    }
    }
    public ChartCollection Graph4
    {
    get {return _chartCollection4 ;}
    set
    {
    If (_chartCollection4.Equals (value))
    {
    return;
    }

    _chartCollection4 = value;
    OnPropertyChanged ("Graph4");
    }
    }

    public Window1()
    {
    InitializeComponent();

    GraphView graphView = new GraphView();
    ContentControlGraph.Content = graphView;
    ContentControlGraph.DataContext = this;

    data.dataReadyEvent += dataEventHandler;
    Closing += MainWindow_Closing;
    }

    Sub MainWindow_Closing (ByVal sender As Object, e CancelEventArgs)
    {
    data. Stop();
    Environment.Exit (0);
    }

    ' private void ButtonBase_OnClick (object sender, RoutedEventArgs e)
    {
    data. Start();
    }

    private int j;
    ' private void dataEventHandler (object sender, EventArgs e)
    {
    j ++ ;
    If (j == 1)
    {
    Graph1.Append ((double[]) sender);
    }
    Else if (j == 2)
    {
    Graph2.Append ((double[]) sender);
    }
    Else if (j == 3)
    {
    Graph3.Append ((double[]) sender);
    }
    on the other
    {
    Graph4.Append ((double[]) sender);


    j = 0;
    }
    }
    }

    The exception occurs in the DLL, so I can not catch it either.

    I think that you run in the multi-threading problem described here: could not get Graph.DataSource to work in WPF, I (thread problem?).

    In short, your chart add calls must be marshaled to the user interface thread.

  • prevent cancellation zoom chart wpf

    Make a right click on the chart WPF undoes the last action of zoom/pan. I want to avoid this. Following did not help:

    ' private void graph_MouseRightButtonUp (object sender, MouseButtonEventArgs e)
    {
    e.Handled = true;
    }

    Hello eugenem,

    Please take a look at this forum. Take a look at the answer, it seems that is what you need.

    Chris S.

Maybe you are looking for