
正文
java画多边形的代码 java中怎么编写多边形类
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何用Java写出泰森多边形算法代码???我找了好多资源表示无解呀?
package com.wangyin.seapay.loginkgo;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.process.Process;
import org.geotools.process.ProcessException;
import org.geotools.process.ProcessFactory;
import org.geotools.process.spatialstatistics.core.Params;
import org.geotools.process.spatialstatistics.enumeration.ThiessenAttributeMode;
import org.geotools.process.spatialstatistics.operations.ThiessenPolygonOperation;
import org.geotools.text.Text;
import org.geotools.util.NullProgressListener;
import org.geotools.util.logging.Logging;
import org.opengis.util.ProgressListener;
import com.vividsolutions.jts.geom.Geometry;
/**
* Created by hanxiaofei on 2018/4/11.
*/
public class ThiessenPolygonProcess extends AbstractStatisticsProcess {
protected static final Logger LOGGER = Logging.getLogger(ThiessenPolygonProcess.class);
private boolean started = false;
public ThiessenPolygonProcess(ProcessFactory factory) {
super(factory);
}
public ProcessFactory getFactory() {
return factory;
}
public static SimpleFeatureCollection process(SimpleFeatureCollection inputFeatures,
ThiessenAttributeMode attributes, Geometry clipArea, ProgressListener monitor) {
MapString, Object map = new HashMapString, Object();
map.put(ThiessenPolygonProcessFactory.inputFeatures.key, inputFeatures);
map.put(ThiessenPolygonProcessFactory.attributes.key, attributes);
map.put(ThiessenPolygonProcessFactory.clipArea.key, clipArea);
Process process = new ThiessenPolygonProcess(null);
MapString, Object resultMap;
try {
resultMap = process.execute(map, monitor);
return (SimpleFeatureCollection) resultMap
.get(ThiessenPolygonProcessFactory.RESULT.key);
} catch (ProcessException e) {
LOGGER.log(Level.FINER, e.getMessage(), e);
}
return null;
}
@Override
public MapString, Object execute(MapString, Object input, ProgressListener monitor)
throws ProcessException {
if (started)
throw new IllegalStateException("Process can only be run once");
started = true;
if (monitor == null)
monitor = new NullProgressListener();
try {
monitor.started();
monitor.setTask(Text.text("Grabbing arguments"));
monitor.progress(10.0f);
SimpleFeatureCollection inputFeatures = (SimpleFeatureCollection) Params.getValue(
input, ThiessenPolygonProcessFactory.inputFeatures, null);
if (inputFeatures == null) {
throw new NullPointerException("inputFeatures parameter required");
}
ThiessenAttributeMode attributes = (ThiessenAttributeMode) Params.getValue(input,
ThiessenPolygonProcessFactory.attributes,
ThiessenPolygonProcessFactory.attributes.sample);
Geometry clipArea = (Geometry) Params.getValue(input,
ThiessenPolygonProcessFactory.clipArea, null);
monitor.setTask(Text.text("Processing ..."));
monitor.progress(25.0f);
if (monitor.isCanceled()) {
return null; // user has canceled this operation
}
// start process
ThiessenPolygonOperation operation = new ThiessenPolygonOperation();
operation.setAttributeMode(attributes);
if (clipArea != null) {
operation.setClipArea(clipArea);
}
SimpleFeatureCollection resultFc = operation.execute(inputFeatures);
// end process
monitor.setTask(Text.text("Encoding result"));
monitor.progress(90.0f);
MapString, Object resultMap = new HashMapString, Object();
resultMap.put(ThiessenPolygonProcessFactory.RESULT.key, resultFc);
monitor.complete(); // same as 100.0f
return resultMap;
} catch (Exception eek) {
monitor.exceptionOccurred(eek);
return null;
} finally {
monitor.dispose();
}
}
}
相关问答
Q1: java 画多边形。。
自己查api,Graphics类有个花封闭曲线的方法,传进去一组x坐标,一组Y坐标
要么用AlphaComposite做颜色混合,选择src_over
SRC_OVER混合规则把源像素(新的像素)组合到目的像素(原有像素)上面,这样重叠的部分就只显示了源像素的颜色。如果你开始渲染一个蓝色矩形,然后把一个红色矩形和它部分重叠,则重叠的部分会被渲染为红色。换句话说最后被渲染成的颜色将在最上面显示出来。
Q2: java画多边形和三角形
我习惯把窗口写成一个单独的类,然后再main方法中创建实例
class mainFrame extends JFrame{
mainFrame(){
JButton sanjiaoxing=new JButton("多边形");
paintListener paintListener=new StartListener();
sanjiaoxing.addActionListener(paintActionListener);
}
class paintListener{
public void actionPerformed(ActionEvent s){
要执行的代码写在这里
}
}
}
具体类,组件,事件名字由你决定
Q3: java里面怎么画多边形?
如果是可以用正方形java画多边形的代码,三角形,圆形等基本图形拼接出来java画多边形的代码的多边形,可以使用area,然后对基本图形取交集或者并集即可
java画多边形的代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中怎么编写多边形类、java画多边形的代码的信息别忘了在本站进行查找喔。







