Java 类java.awt.geom.Dimension2D 实例源码
项目:ramus
文件:Group.java
public void applyTransforms() {
double scaleX = getScaleX();
double scaleY = getScaleY();
for (Bounds bounds : this.bounds) {
if (bounds instanceof QBounds) {
QBounds qBounds = (QBounds) bounds;
Point2D point = qBounds.getLocation();
qBounds.setLocation(new Point2D.Double(point.getX()
+ translate.getX(), point.getY() + translate.getY()));
Dimension2D d = qBounds.getSize();
qBounds.setSize(new Dimension2DImpl(d.getWidth() * scaleX, d
.getHeight()
* scaleY));
}
}
clear();
}
项目:ramus
文件:PrintPreviewComponent.java
public Dimension2D getPageSize() {
int pageCount = printable.getPageCount();
double pageWidth = 0;
double pageHeight = 0;
PageFormat pageFormat = new PageFormat();
for (int i = 0; i < pageCount; i++) {
pageFormat = printable.getPageFormat(pageFormat, i);
double w = pageFormat.getWidth();
double h = pageFormat.getHeight();
if (pageWidth < w)
pageWidth = w;
if (pageHeight < h)
pageHeight = h;
}
final double fw = pageWidth;
final double fh = pageHeight;
return new Dimension2D() {
@Override
public void setSize(double width, double height) {
}
@Override
public double getWidth() {
return fw;
}
@Override
public double getHeight() {
return fh;
}
};
}
项目:ramus
文件:PrintPreviewComponent.java
public void setFitZoom(Dimension size) {
Dimension2D pageSize = getPageSize();
int pageCount = printable.getPageCount();
if (pageCount == 0)
return;
double xy = (pageSize.getWidth() + W_SPACE)
* (pageSize.getHeight() + W_SPACE) * (pageCount + 1);
double mxy = size.getWidth() * size.getHeight();
double zoom = Math.sqrt(mxy / xy);
int columnCount = (int) (size.getWidth() / ((pageSize.getWidth() + W_SPACE
/ zoom) * zoom));
if (columnCount <= 0)
columnCount = 1;
if (columnCount > pageCount)
columnCount = pageCount;
setup(columnCount, zoom);
}
项目:OpenJSharp
文件:CImage.java
/** @return A MultiResolution image created from nsImagePtr, or null. */
private Image toImage() {
if (ptr == 0) return null;
final Dimension2D size = nativeGetNSImageSize(ptr);
final int w = (int)size.getWidth();
final int h = (int)size.getHeight();
Dimension2D[] sizes
= nativeGetNSImageRepresentationSizes(ptr,
size.getWidth(), size.getHeight());
return sizes == null || sizes.length < 2 ?
new MultiResolutionCachedImage(w, h, (width, height)
-> toImage(w, h, width, height))
: new MultiResolutionCachedImage(w, h, sizes, (width, height)
-> toImage(w, h, width, height));
}
项目:jdk8u-jdk
文件:CImage.java
/** @return A MultiResolution image created from nsImagePtr, or null. */
private Image toImage() {
if (ptr == 0) return null;
final Dimension2D size = nativeGetNSImageSize(ptr);
final int w = (int)size.getWidth();
final int h = (int)size.getHeight();
Dimension2D[] sizes
= nativeGetNSImageRepresentationSizes(ptr,
size.getWidth(), size.getHeight());
return sizes == null || sizes.length < 2 ?
new MultiResolutionCachedImage(w, h, (width, height)
-> toImage(w, h, width, height))
: new MultiResolutionCachedImage(w, h, sizes, (width, height)
-> toImage(w, h, width, height));
}
项目:openjdk9
文件:CImage.java
/** @return A MultiResolution image created from nsImagePtr, or null. */
private Image toImage() {
if (ptr == 0) return null;
final Dimension2D size = nativeGetNSImageSize(ptr);
final int w = (int)size.getWidth();
final int h = (int)size.getHeight();
Dimension2D[] sizes
= nativeGetNSImageRepresentationSizes(ptr,
size.getWidth(), size.getHeight());
return sizes == null || sizes.length < 2 ?
new MultiResolutionCachedImage(w, h, (width, height)
-> toImage(w, h, width, height))
: new MultiResolutionCachedImage(w, h, sizes, (width, height)
-> toImage(w, h, width, height));
}
项目:PhET
文件:CanvasBoundedDragHandler.java
public void mouseDragged( final PInputEvent event ) {
//Some clients such as the LaserNode only pass messages through the mouseDragged function,
//so check first and see if we need to get the initial location
if ( lastLocation == null ) {
mousePressed( event );
}
//Compute the global coordinate for where the drag is supposed to take the node
Point2D newDragPosition = event.getPositionRelativeTo( node.getParent().getParent() );//see note in constructor
newDragPosition = node.getParent().getParent().localToGlobal( newDragPosition );
//Bound the desired point within the canvas, accounting for some insets (so some part will always be visible)
final int inset = 10;
final ImmutableRectangle2D immutableRectangle2D = new ImmutableRectangle2D( inset, inset, event.getSourceSwingEvent().getComponent().getWidth() - inset * 2, event.getSourceSwingEvent().getComponent().getHeight() - inset * 2 );
Point2D constrained = immutableRectangle2D.getClosestPoint( newDragPosition );
Dimension2D delta = new PDimension( constrained.getX() - lastLocation.getX(), constrained.getY() - lastLocation.getY() );
//Convert from global to the node parent frame
delta = node.globalToLocal( delta );
delta = node.localToParent( delta );
//Translate the node and get ready for next event
dragNode( new DragEvent( event, new PDimension( delta.getWidth(), delta.getHeight() ) ) );
lastLocation = constrained;
}
项目:PhET
文件:GameCanvas.java
@Override
protected void updateLayout() {
super.updateLayout();
Dimension2D worldSize = getWorldSize();
if ( worldSize.getWidth() > 0 && worldSize.getHeight() > 0 ) {
// make the reward animation fill the play area
PBounds newBounds = new PBounds( 0, 0, worldSize.getWidth(), worldSize.getHeight() );
gameRewardNode.setBounds( newBounds );
// center top-level nodes
centerNode( gameSettingsNode );
centerNode( gameOverNode );
centerNode( gamePlayParentNode );
}
}
项目:PhET
文件:ConductivityTesterNode.java
public ProbeNode( Dimension2D size, Color color, String label, Color labelColor ) {
PPath pathNode = new PPath( new Rectangle2D.Double( -size.getWidth() / 2, -size.getHeight(), size.getWidth(), Math.abs( size.getHeight() ) ) );
pathNode.setStroke( PROBE_STROKE );
pathNode.setStrokePaint( PROBE_STROKE_COLOR );
pathNode.setPaint( color );
addChild( pathNode );
PText labelNode = new PText( label );
labelNode.setTextPaint( labelColor );
labelNode.setFont( PROBE_LABEL_FONT );
addChild( labelNode );
double x = pathNode.getFullBoundsReference().getCenterX() - ( labelNode.getFullBoundsReference().getWidth() / 2 );
double y = pathNode.getFullBoundsReference().getMaxY() - labelNode.getFullBoundsReference().getHeight() - 3;
labelNode.setOffset( x, y );
}
项目:PhET
文件:MembraneChannelNode.java
private PPath createRoundedEdgeNode( Dimension2D size, Color color ) {
GeneralPath path = new GeneralPath();
float width = (float) size.getWidth();
float height = (float) size.getHeight();
path.moveTo( -width / 2, height / 4 );
path.curveTo( -width / 2, height * 0.6f, width / 2, height * 0.6f, width / 2, height / 4 );
path.lineTo( width / 2, -height / 4 );
path.curveTo( width / 2, -height * 0.6f, -width / 2, -height * 0.6f, -width / 2, -height / 4 );
path.closePath();
PPath edgeNode = new PPath( path );
edgeNode.setPaint( color );
edgeNode.setStrokePaint( ColorUtils.darkerColor( color, 0.3 ) );
return edgeNode;
}
项目:PhET
文件:MeasuringTape.java
public BodyGraphic() {
try {
imageGraphic = new PImage( ImageLoader.loadBufferedImage( MEASURING_TAPE_IMAGE ) );
}
catch ( IOException e ) {
e.printStackTrace();
}
addChild( imageGraphic );
addInputEventListener( new PBasicInputEventHandler() {
public void mouseDragged( PInputEvent event ) {
Dimension2D dx = getDelta( event );
translateAll( dx.getWidth(), dx.getHeight() );
}
} );
int crossHairLength = 10;
CrossHairGraphic crossHairGraphic = new CrossHairGraphic( crossHairLength );
addChild( crossHairGraphic );
crossHairGraphic.setOffset( imageGraphic.getWidth() - crossHairLength / 2, imageGraphic.getHeight() - crossHairLength / 2 );
addInputEventListener( new CursorHandler( Cursor.HAND_CURSOR ) );
}
项目:PhET
文件:MeasuringTape.java
public EndGraphic() {
Ellipse2D.Double shape = new Ellipse2D.Double( 0, 0, 15, 15 );
phetShapeGraphic = new PPath( shape );
phetShapeGraphic.setPaint( Color.black );
addChild( phetShapeGraphic );
addInputEventListener( new PBasicInputEventHandler() {
public void mouseDragged( PInputEvent event ) {
Dimension2D dx = getDelta( event );
MeasuringTape.this.translateEndPoint( dx.getWidth(), dx.getHeight() );
}
} );
addInputEventListener( new CursorHandler( Cursor.HAND_CURSOR ) );
int crossHairSize = 10;
CrossHairGraphic crossHairGraphic = new CrossHairGraphic( crossHairSize );
crossHairGraphic.setPaint( Color.yellow );
addChild( crossHairGraphic );
crossHairGraphic.setOffset( phetShapeGraphic.getWidth() / 2 - crossHairSize / 2, phetShapeGraphic.getHeight() / 2 - crossHairSize / 2 );
}
项目:PhET
文件:TiltPredictionSelectorNode.java
/**
* Main routine that constructs a PhET Piccolo canvas in a window.
*
* @param args
*/
public static void main( String[] args ) {
Dimension2D stageSize = new PDimension( 500, 300 );
PhetPCanvas canvas = new PhetPCanvas();
// Set up the canvas-screen transform.
canvas.setWorldTransformStrategy( new PhetPCanvas.CenteredStage( canvas, stageSize ) );
ModelViewTransform mvt = ModelViewTransform.createSinglePointScaleInvertedYMapping(
new Point2D.Double( 0, 0 ),
new Point( (int) Math.round( stageSize.getWidth() * 0.5 ), (int) Math.round( stageSize.getHeight() * 0.50 ) ),
1 ); // "Zoom factor" - smaller zooms out, larger zooms in.
canvas.getLayer().addChild( new TiltPredictionSelectorNode( new Property<BalanceGameModel.GameState>( BalanceGameModel.GameState.PRESENTING_INTERACTIVE_CHALLENGE ) ) );
// Boiler plate app stuff.
JFrame frame = new JFrame();
frame.setContentPane( canvas );
frame.setSize( (int) stageSize.getWidth(), (int) stageSize.getHeight() );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setLocationRelativeTo( null ); // Center.
frame.setVisible( true );
}
项目:PhET
文件:EnergyChunkNode2.java
public static void main( String[] args ) {
Dimension2D stageSize = new PDimension( 200, 100 );
PhetPCanvas canvas = new PhetPCanvas();
// Set up the canvas-screen transform.
canvas.setWorldTransformStrategy( new PhetPCanvas.CenteredStage( canvas, stageSize ) );
ModelViewTransform mvt = ModelViewTransform.createSinglePointScaleInvertedYMapping(
new Point2D.Double( 0, 0 ),
new Point( (int) Math.round( stageSize.getWidth() * 0.5 ), (int) Math.round( stageSize.getHeight() * 0.50 ) ),
1 ); // "Zoom factor" - smaller zooms out, larger zooms in.
canvas.getLayer().addChild( new EnergyChunkNode2( new EnergyChunk( EnergyType.ELECTRICAL, 0, 0, new BooleanProperty( true ) ), mvt ) );
// Boiler plate app stuff.
JFrame frame = new JFrame();
frame.setContentPane( canvas );
frame.setSize( (int) stageSize.getWidth(), (int) stageSize.getHeight() );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setLocationRelativeTo( null ); // Center.
frame.setVisible( true );
}
项目:PhET
文件:SettingsNode.java
public SettingsNode( final LineGameModel model, Dimension2D stageSize ) {
// the standard game settings panel
PNode panelNode = new PSwing( new GameSettingsPanel( model.settings,
new VoidFunction0() {
public void apply() {
model.phase.set( GamePhase.PLAY );
}
},
LineGameConstants.BUTTON_COLOR ) );
panelNode.scale( 1.5 );
addChild( panelNode );
// centered on stage
setOffset( ( stageSize.getWidth() - getFullBoundsReference().getWidth() ) / 2,
( stageSize.getHeight() - getFullBoundsReference().getHeight() ) / 2 );
}
项目:jasperreports
文件:BarbecueRendererImpl.java
@Override
public Dimension2D getDimension(JasperReportsContext jasperReportsContext)
{
if (rotation != null)
{
switch(rotation)
{
case LEFT:
case RIGHT:
return new Dimension((int)barcode.getSize().getHeight(),(int)barcode.getSize().getWidth());
default:
return barcode.getSize();
}
} else
{
return barcode.getSize();
}
}
项目:JavaGraph
文件:JGraph.java
/**
* Overwritten to freeze nodes to their center on
* size changes.
*/
@Override
public void updateAutoSize(CellView view) {
if (view != null && !isEditing()) {
Rectangle2D bounds =
(view.getAttributes() != null) ? GraphConstants.getBounds(view.getAttributes())
: null;
AttributeMap attrs = getModel().getAttributes(view.getCell());
if (bounds == null) {
bounds = GraphConstants.getBounds(attrs);
}
if (bounds != null) {
boolean autosize = GraphConstants.isAutoSize(view.getAllAttributes());
boolean resize = GraphConstants.isResize(view.getAllAttributes());
if (autosize || resize) {
Dimension2D d = getPreferredSize(view);
int inset = 2 * GraphConstants.getInset(view.getAllAttributes());
// adjust the x,y corner so that the center stays in place
double shiftX = (bounds.getWidth() - d.getWidth() - inset) / 2;
double shiftY = (bounds.getHeight() - d.getHeight() - inset) / 2;
bounds.setFrame(bounds.getX() + shiftX, bounds.getY() + shiftY, d.getWidth(),
d.getHeight());
// Remove resize attribute
snap(bounds);
if (resize) {
if (view.getAttributes() != null) {
view.getAttributes().remove(GraphConstants.RESIZE);
}
attrs.remove(GraphConstants.RESIZE);
}
view.refresh(getGraphLayoutCache(), getGraphLayoutCache(), false);
}
}
}
}
项目:JavaGraph
文件:JGraph.java
private Dimension2D getPreferredSize(CellView view) {
Dimension2D result;
JVertex<?> vertex = view instanceof JVertexView ? ((JVertexView) view).getCell() : null;
if (vertex == null) {
result = getUI().getPreferredSize(this, view);
} else {
if (vertex.isStale(VisualKey.TEXT_SIZE)) {
result = getUI().getPreferredSize(this, view);
vertex.putVisual(VisualKey.TEXT_SIZE, result);
} else {
result = vertex.getVisuals().getTextSize();
}
}
return result;
}
项目:JavaGraph
文件:JGraphUI.java
@Override
protected Point2D getEditorLocation(Object cell, Dimension2D editorSize,
Point2D pt) {
double scale = getJGraph().getScale();
// shift the location by the extra border space
return super.getEditorLocation(cell, editorSize,
new Point2D.Double(
pt.getX() + scale * (EXTRA_BORDER_SPACE + 4) - 4, pt.getY()
+ scale * (EXTRA_BORDER_SPACE + 3) - 3));
}
项目:JavaGraph
文件:JVertexLayout.java
/**
* Factory method to construct a new nod layout out of an attribute map.
* Parameters not provided in the attribute map receive a default value.
* @param visuals the visual attribute map
* @return a new node layout based on <code>jAttr</code>
*/
static public JVertexLayout newInstance(VisualMap visuals) {
Dimension2D size = visuals.getNodeSize();
Point2D pos = visuals.getNodePos();
return new JVertexLayout(new Rectangle2D.Double(pos.getX() - size.getWidth() / 2,
pos.getY() - size.getHeight() / 2, size.getWidth(), size.getHeight()));
}
项目:jfree-fxdemos
文件:OrsonChartsFXDemo.java
public void zoomToFit(Drawable3D drawable, Dimension size) {
int w = (int) (size.getWidth() * (1.0 - this.margin));
int h = (int) (size.getHeight() * (1.0 - this.margin));
Dimension2D target = new Dimension(w, h);
Dimension3D d3d = drawable.getDimensions();
float distance = drawable.getViewPoint().optimalDistance(target,
d3d, drawable.getProjDistance());
drawable.getViewPoint().setRho(distance);
}
项目:ramus
文件:GEFComponent.java
public void setDiagramam(Diagram diagramam) {
this.diagram = diagramam;
Dimension2D size = diagramam.zoom(diagramam.getSize(), zoom);
setSize((int) floor(size.getWidth()) + 2,
(int) floor(size.getHeight()) + 2);
setPreferredSize(getSize());
}
项目:ramus
文件:XMLDiagram.java
@Override
public Dimension2D getSize() {
double height = top * 2;
for (int i = 0; i < components.length; i++) {
XMLComponent component = (XMLComponent) components[i];
if (component.isY()) {
height += ((QBounds) bounds[i]).getSize().getHeight();
}
}
final Dimension2DImpl size = new Dimension2DImpl(width + LEFT * 2,
height);
if (!size.equals(this.size)) {
this.size = size;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
if (editor != null) {
editor.setPreferredSize(new Dimension((int) size
.getWidth(), (int) size.getHeight()));
editor.revalidate();
editor.repaint();
}
}
});
}
return size;
}
项目:ramus
文件:Table.java
public void applyComlumnsSize(QBounds tableBound, Diagram diagram) {
double width = getMinWidth();
double w = width / columns.length;
double x = tableBound.getLocation().getX();
for (TableColumn tableColumn : columns) {
QBounds bounds = (QBounds) diagram.getBounds(tableColumn);
Dimension2D size = bounds.getSize();
size.setSize(w, size.getHeight());
bounds.setLocation(new Point2D.Double(x, getColumnYLocation(
tableBound, size)));
tableColumn.setWidth(w);
x += w;
}
}
项目:ramus
文件:Table.java
public void applyComlumnsSize(QBounds tableBound, QBounds[] bounds) {
double width = getMinWidth();
double w = width / columns.length;
double x = tableBound.getLocation().getX();
for (int i = 0; i < columns.length; i++) {
TableColumn tableColumn = columns[i];
Dimension2D size = bounds[i].getSize();
size.setSize(w, size.getHeight());
bounds[i].setLocation(new Point2D.Double(x, getColumnYLocation(
tableBound, size)));
tableColumn.setWidth(w);
x += w;
}
}
项目:ramus
文件:PrintPreviewComponent.java
public void setFitZoom(double zoom, Dimension size) {
if (zoom > 10)
zoom = 10;
if (zoom < 0.1)
zoom = 0.1;
int columnCount = 1;
Dimension2D pageSize = getPageSize();
while (((pageSize.getWidth() + W_SPACE / zoom) * columnCount + pageSize
.getWidth()) * zoom < size.getWidth()) {
columnCount++;
}
setup(columnCount, zoom);
}
项目:ramus
文件:PrintPreviewComponent.java
public void setOnePageZoom(Dimension size) {
Dimension2D pageSize = getPageSize();
int pageCount = printable.getPageCount();
if (pageCount == 0)
return;
double zoom = size.getWidth() / (pageSize.getWidth());
int columnCount = 1;
setup(columnCount, zoom);
}
项目:OpenJSharp
文件:MultiResolutionCachedImage.java
public MultiResolutionCachedImage(int baseImageWidth, int baseImageHeight,
Dimension2D[] sizes, BiFunction<Integer, Integer, Image> mapper) {
this.baseImageWidth = baseImageWidth;
this.baseImageHeight = baseImageHeight;
this.sizes = (sizes == null) ? null : Arrays.copyOf(sizes, sizes.length);
this.mapper = mapper;
}
项目:jdk8u-jdk
文件:MultiResolutionCachedImage.java
public MultiResolutionCachedImage(int baseImageWidth, int baseImageHeight,
Dimension2D[] sizes, BiFunction<Integer, Integer, Image> mapper) {
this.baseImageWidth = baseImageWidth;
this.baseImageHeight = baseImageHeight;
this.sizes = (sizes == null) ? null : Arrays.copyOf(sizes, sizes.length);
this.mapper = mapper;
}
项目:openjdk-jdk10
文件:MultiResolutionCachedImage.java
private MultiResolutionCachedImage(int baseImageWidth, int baseImageHeight,
Dimension2D[] sizes,
BiFunction<Integer, Integer, Image> mapper,
boolean copySizes)
{
this.baseImageWidth = baseImageWidth;
this.baseImageHeight = baseImageHeight;
this.sizes = (copySizes && sizes != null)
? Arrays.copyOf(sizes, sizes.length)
: sizes;
this.mapper = mapper;
}
项目:openjdk-jdk10
文件:CImage.java
/** @return A MultiResolution image created from nsImagePtr, or null. */
private Image toImage() {
if (ptr == 0) {
return null;
}
AtomicReference<Dimension2D> sizeRef = new AtomicReference<>();
execute(ptr -> {
sizeRef.set(nativeGetNSImageSize(ptr));
});
final Dimension2D size = sizeRef.get();
if (size == null) {
return null;
}
final int w = (int)size.getWidth();
final int h = (int)size.getHeight();
AtomicReference<Dimension2D[]> repRef = new AtomicReference<>();
execute(ptr -> {
repRef.set(nativeGetNSImageRepresentationSizes(ptr, size.getWidth(),
size.getHeight()));
});
Dimension2D[] sizes = repRef.get();
return sizes == null || sizes.length < 2 ?
new MultiResolutionCachedImage(w, h, (width, height)
-> toImage(w, h, width, height))
: new MultiResolutionCachedImage(w, h, sizes, (width, height)
-> toImage(w, h, width, height));
}
项目:ccu-historian
文件:Dimension2DObjectDescription.java
/**
* Creates an object based on the description.
*
* @return The object.
*/
public Object createObject() {
final Dimension2D dim = new FloatDimension();
final float width = getFloatParameter("width");
final float height = getFloatParameter("height");
dim.setSize(width, height);
return dim;
}
项目:PhET
文件:CompareCanvas.java
protected void updateLayout() {
Dimension2D worldSize = getWorldSize();
if ( worldSize.getWidth() <= 0 || worldSize.getHeight() <= 0 ) {
// canvas hasn't been sized, blow off layout
return;
}
else if ( TitrationConstants.DEBUG_CANVAS_UPDATE_LAYOUT ) {
System.out.println( "TitrateCanvas.updateLayout worldSize=" + worldSize );//XXX
}
//XXX lay out nodes
}
项目:PhET
文件:PCameraTest.java
public void testLocalToViewDimension2DTranslateView() {
camera.translateView(10.0d, 20.0d);
Dimension2D local = new Dimension(0, 0);
camera.localToView(local);
assertEquals(0.0d, local.getWidth(), 0.1d);
assertEquals(0.0d, local.getHeight(), 0.1d);
}
项目:PhET
文件:MultiNucleusDecayLinearTimeChart.java
/**
* This method is called to re-scale the chart, which generally occurs
* when the overall size of the simulation is changed.
*
* @param
*/
private void updateSize( Dimension2D size ) {
if ( size.getWidth() == 0 || size.getHeight() == 0 ) {
// Ignore unreasonable bounds.
return;
}
// Set the scale factor such that this chart fits in the given bounds,
// but do not change the aspect ratio.
setScale( 1 );
setScale( Math.min( size.getWidth() / _backgroundNode.getFullBoundsReference().width, size.getHeight() / _backgroundNode.getFullBoundsReference().height ) );
}
项目:PhET
文件:ZoomIndicatorNode.java
/**
* Draws dashed lines between the upper-left and lower-left corners of the "tiny box" and the "big box".
*
* @param tinyBoxOrigin
* @param tinyBoxSize
* @param bigBoxOrigin
* @param bigBoxSize
*/
public void update( Point2D tinyBoxOrigin, Dimension2D tinyBoxSize, Point2D bigBoxOrigin, Dimension2D bigBoxSize ) {
removeAllChildren();
double x1 = tinyBoxOrigin.getX();
double y1 = tinyBoxOrigin.getY();
double x2 = bigBoxOrigin.getX();
double y2 = bigBoxOrigin.getY();
double x3 = tinyBoxOrigin.getX();
double y3 = tinyBoxOrigin.getY() + tinyBoxSize.getHeight();
double x4 = bigBoxOrigin.getX();
double y4 = bigBoxOrigin.getY() + bigBoxSize.getHeight();
PPath topLine = new PPath();
topLine.setPathTo( new Line2D.Double( x1, y1, x2, y2 ) );
topLine.setStroke( STROKE );
topLine.setStrokePaint( Color.WHITE );
addChild( topLine );
PPath bottomLine = new PPath();
bottomLine.setPathTo( new Line2D.Double( x3, y3, x4, y4 ) );
bottomLine.setStroke( STROKE );
bottomLine.setStrokePaint( Color.WHITE );
addChild( bottomLine );
}
项目:PhET
文件:DatableItem.java
public void setSize( Dimension2D size ) {
if ( width != size.getWidth() || height != size.getHeight() ) {
width = size.getWidth();
height = size.getHeight();
notifySizeChanged();
}
}
项目:PhET
文件:KnobNode.java
/**
* Test harness.
*
* @param args
*/
public static void main( String[] args ) {
Dimension2D stageSize = new PDimension( 500, 400 );
PhetPCanvas canvas = new PhetPCanvas();
// Set up the canvas-screen transform.
canvas.setWorldTransformStrategy( new PhetPCanvas.CenteredStage( canvas, stageSize ) );
// Add the default knob to the canvas.
canvas.addWorldChild( new KnobNode() {{
setOffset( 10, 10 );
}} );
// Add a node that is typical as of 4/3/2012. This was taken from
// the VSliderNode class as it looked at the time of this writing.
canvas.addWorldChild( new KnobNode( new KnobNode.ColorScheme( new Color( 115, 217, 255 ) ) ) {{
setOffset( 10, 50 );
}} );
// Add a disabled version that uses a common color scheme.
canvas.addWorldChild( new KnobNode( new KnobNode.ColorScheme( new Color( 115, 217, 255 ) ) ) {{
setOffset( 10, 90 );
setEnabled( false );
}} );
// Boiler plate app stuff.
JFrame frame = new JFrame();
frame.setContentPane( canvas );
frame.setSize( (int) stageSize.getWidth(), (int) stageSize.getHeight() );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setLocationRelativeTo( null ); // Center.
frame.setVisible( true );
}
项目:PhET
文件:GeneNetworkCanvas.java
protected void updateLayout() {
Dimension2D worldSize = getWorldSize();
if ( worldSize.getWidth() <= 0 || worldSize.getHeight() <= 0 ) {
// canvas hasn't been sized, blow off layout
return;
}
else if ( GeneNetworkConstants.DEBUG_CANVAS_UPDATE_LAYOUT ) {
System.out.println( "cavas worldSize=" + worldSize );
}
// Place the legend where it needs to go.
legend.setOffset(getWidth() - legend.getFullBoundsReference().getWidth() - 10, 10);
}
项目:PhET
文件:CloseOnMovingTargetMotionStrategy.java
public CloseOnMovingTargetMotionStrategy(IModelElement targetElement, Dimension2D offsetFromTarget,
Rectangle2D bounds) {
super(bounds);
this.targetElement = targetElement;
this.offsetFromTarget = offsetFromTarget;
targetElement.addListener(targetListener);
updateDestination();
}