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:
Here is a screenshot:
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)
Point of everything lining up that's finally what I turn to, here on a Google Earth image (which I can't use obviously):
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 2I 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
MohamedHi 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);
} -
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());
-
Copy the following code draws a simple chart of the XYLine
I like to shoot arrows on the table by left click of the mouse button and moved, as in this exampleimport 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); } }
[http://s8.postimage.org/5xgu0j6kl/A02480.png]
How to do this?
Thank you!
Published by: 932518 on November 6, 2012 4.32Hello. 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 ChartCollectionGraph2
{
get {return _chartCollection2 ;}
set
{
If (_chartCollection2.Equals (value))
{
return;
}_chartCollection2 = value;
OnPropertyChanged ("Graph2");
}
}
public ChartCollectionGraph3
{
get {return _chartCollection3 ;}
set
{
If (_chartCollection3.Equals (value))
{
return;
}_chartCollection3 = value;
OnPropertyChanged ("Graph3");
}
}
public ChartCollectionGraph4
{
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
-
AutoPlay in YouTube playlists doesn't work with HTML5, it works with extensions disabled
I noticed that lately turn on autoplay in YouTube playlists does not work when you use the HTML5 player. Instead of jumping to the next video, the video finished playing and instead of the "replay" button, there is a normal play button, if I can play
-
How do I find and disable webroot spy sweeper?
I'm trying to get rid of the "inadmissible scripts" that freeze to my computer. Makes me crazy! I'm not very knowledgeable computer, so telling me to disable webroot spy sweeper does not help. I have no idea what it is, where to find it, or how to do
-
When I shoot to the top of mozilla, I have a grey circle in front of the att home page. When I go to yahoo, this icon does not change in the purple circle. The gray circle left any Web site in the address bar. -maybe only unsecured sites because I se
-
Where to find info on the Satellite Pro A200 PSAF0A
I have an A200 Satellite (Pro), number PSAF0A - 03M 019 and so far have NOT had the chance to get the info on the site of Toshiba on this machine, it seems lost as Toshiba is concerned. When you use the menu support it rejects serial number or part o
-
I spent my sansa fuze and realized that the setting on the homescreen option wasn't there. I tried to reset by holding down the power button for 15 seconds and it always comes out the same, I don't think it's resseting anything. Is there any solution