首页 > 代码库 > Java的List<Object>如何判断元素类别、输入流的回退,以及Autocad中参照块的坐标变换。

Java的List<Object>如何判断元素类别、输入流的回退,以及Autocad中参照块的坐标变换。

关于最近有关CAD数据的项目的一点总结

1.关于Java中的List<Object>用法。

它可以存多种不同的元素,但在取元素时怎么判断该元素是哪一类呢?在取元素时,可以通过调用getclass方法与类.class比较,来判断List中的元素是哪一类。然后再将该元素进行强制类型转换即可。


2.关于AutoCAD中数据的参照块坐标。

dxf 文件中块参照会有一些坐标的定义,在实体段中可以通过INSERT来插入这些参照块。但INSERT中只有插入点的坐标,那么如何确定参照块各图元的坐标呢?以及插入点是什么意思呢?

通过计算坐标摸索出来的规律:首先插入点是参照块中坐标原点(0,0)在INSERT后的位置。这样的话,通过计算各个点关于坐标原点的相对关系,即可确定插入后参照块各图元的坐标。具体地,有各坐标轴伸缩、旋转等变换的代码如下:

<script src="https://code.csdn.net/snippets/469979.js" type="text/javascript"></script>

3.关于Java中BufferReader流的读取。如果读取之后,经检查不是想要的数据,但并不能简单地丢弃,因为可能紧接的代码就需要用到。意思就是,读出数据之后再将其放回。怎么做?

通过调用mark()方法来标记之前的位置,然后通过调用reset()方法来回退到上一次mark标记的流的位置。(这里要充分考虑各种情况,不要因为mark的地方不够或不对,造成死循环。)这个应该是和文件的缓冲区数据结构中的标记流位置变量有关。


Java的List<Object>如何判断元素类别、输入流的回退,以及Autocad中参照块的坐标变换。