From: Adel G. <go...@eb...> - 2008-11-22 11:29:20
|
On Friday 21 November 2008 18:38, Egon Willighagen wrote: > On Fri, Nov 21, 2008 at 5:51 PM, Adel Golovin <go...@eb...> wrote: > > With this code I try to zero coordinates so, the generator will be forced > > to produce them. > > Well, you can better make them 'null', and, you should at least change > the 2D coordinates: > > for (IAtom atom : mol.atoms()) atom.setPoint2d(null); > > Egon Thanks, Now it generates the 2D coordinates but still the image I get back is black square. The code is as follows: // read molecule from MDL file org.openscience.cdk.io.MDLReader cdkMDL = new org.openscience.cdk.io.MDLReader(mdl); org.openscience.cdk.Molecule mol = new org.openscience.cdk.Molecule(); cdkMDL.read(mol); // null the coordinates Iterator<org.openscience.cdk.interfaces.IAtom> itatoms = mol.atoms(); while (itatoms.hasNext()) { org.openscience.cdk.interfaces.IAtom atom = itatoms.next(); atom.setPoint2d(null); atom.setPoint3d(null); } // generate coordinates org.openscience.cdk.layout.StructureDiagramGenerator sdg = new org.openscience.cdk.layout.StructureDiagramGenerator(); sdg.setMolecule(mol); sdg.generateCoordinates(); org.openscience.cdk.interfaces.IMolecule layedOutMol = sdg.getMolecule(); // render org.openscience.cdk.renderer.SimpleRenderer2D renderer = new org.openscience.cdk.renderer.SimpleRenderer2D(); org.openscience.cdk.renderer.Renderer2DModel r2dm = new org.openscience.cdk.renderer.Renderer2DModel(); r2dm.setDrawNumbers(false); r2dm.setUseAntiAliasing(true); r2dm.setColorAtomsByType(true); r2dm.setShowImplicitHydrogens(true); r2dm.setShowAromaticity(true); r2dm.setShowReactionBoxes(false); r2dm.setKekuleStructure(false); renderer.setRenderer2DModel(r2dm); BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = bufferedImage.createGraphics(); Rectangle2D bounds = new Rectangle2D.Double(0, 0, width, height); renderer.paintMolecule(layedOutMol, graphics, bounds); // write the image javax.imageio.ImageIO.write(bufferedImage, "png", out); -- Adel |