卓航论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 350|回复: 3
打印 上一主题 下一主题

关于几何关系的代码说明

[复制链接]
[至尊红钻5级]发帖数量≥8000篇 [未点亮至尊黄钻]威望不足10点 [未点亮至尊蓝钻]在线时间不足10小时 [未点亮至尊绿钻]贡献度不足10点 [至尊紫钻4级]金币≥20000个 [未点亮至尊粉钻]精华贴数不足10贴 [未点亮至尊黑钻]活跃不足8个
 等级: 
 级别: 论坛元老
 UID:  7   [未点亮普号显示]钻石不足3个
 阁 分: 36567
 阁 望: 0
 阁 献: 0
 活 跃: 0
 发 贴: 12405 (0)
 阁 币: 24162  
性 别: I'm 火星人!
阅读权限: 90
在线时长: 0 小时
注册时间: 2016-10-16
最后登录: 2016-10-18
go
楼主
发表于 2016-10-17 16:24:15 |只看该作者 |倒序浏览
本帖发表于 2016-10-17 16:24:15...阅读 351 人...加油,亲爱的楼主:[db:作者]
很多朋友需要这方面的资料,尤其是代码。我在陆续挖掘和整理的过程中,推翻了自己的 开源的设想,形成了一个库——cgal32.dll(win32版,标准C库)。
一、 这是基于几个原因:
1、库中个别地方代码采用了非商业开源的代码。我没有权利去 公开它们。
2、只有不开源,我写的库大家才能免费使用。免除大家在道德和法律上 面临的风险。
3、我做了大量工作,使自己本身免除道德和法律上的风险。
4 、我声明我个人拥有这些库(编译后)的版权。今后任何个人和公司可以免费使用库,但不 能声明拥有版权(或其他权利,包括出售库本身的权利)。我拥有库的源代码90%以上的版权 。
二、关于cgal32.dll:
1、cgal32.dll与CGAL开源项目(www.cgal.org)没 有任何关系,我也没看过和下载过它们的代码。
2、我使用ANSI C构建cgal32.dll库 ,以使其适应跨平台的需要。虽然目前只有WIN32版本,但以后会出LINUX等版本。
3 、cgal32.dll主要完成空间几何的定义和运算。空间几何包括:点(点集)、线(多线)、 面、体和面片。运算包括:Union、Difference、XOR、Intersection。
4、我的目标 是把cgal32发展成为具有巨大潜力的解决人们在空间几何领域的诸多问题。
5、目前 功能简单,还不提供下载,请谅解。
               
三、附部分头文件:
/*================================================================== ===========
cgal.h
cheungmine - All rights reserved
    Sep. 8, 2010
==============================================================================*/ #ifndef _CGAL_H_INCLUDED
#define _CGAL_H_INCLUDED
#include
#include
#include
#include
#ifdef __cplusplus
extern "C" ...{
#endif
#ifdef CGAL_DLLEXPORt
#  define CGAL_CALL __declspec(dllexport)
#  define CGAL_CALL1(x)  __declspec(dllexport) x
#endif
#ifndef CGAL_CALL
#  define CGAL_CALL
#endif
#ifndef CGAL_CALL1
#  define CGAL_CALL1(x)      x CGAL_CALL    /**//* For example: CGAL_CALL1(char*) foo();*/
#endif
#include "cgalerr.h"
#include "cgaldef.h"
/**//*=========================================================================== ===
                            Library Functions - cgal.c
==============================================================================*/
void   CGAL_CALL  CGAL_init  ( double epsilon );    /**//* must call this first of all in process-wide */
void   CGAL_CALL  CGAL_fini  ( int reserved );
BOOL   CGAL_CALL   CGAL_blob_alloc  ( cg_blob_t* blob );
void   CGAL_CALL  CGAL_blob_free  ( cg_blob_t* blob );
double CGAL_CALL  CGAL_get_epsilon();        /**//* Smallest such that x+epsilon != x */
int    CGAL_CALL  CGAL_get_precision();        /**//* decimal digits of precision */
CGAL_CALL1(const char*)  CGAL_get_result_msg (int rcode);
RESULT CGAL_CALL  CGAL_gzip_deflate ( cg_blob_t* in_plain, cg_blob_t* out_compressed );            /**//* compress */
RESULT CGAL_CALL  CGAL_gzip_inflate ( cg_blob_t* in_compressed, cg_blob_t* out_decompressed );    /**//* uncompress */
/**//*========================================================================= =====
                            Polygon Functions - polygon.c
==============================================================================*/
BOOL   CGAL_CALL  CG_polygon_create  ( cg_polygon  *polygon );
void   CGAL_CALL  CG_polygon_destroy  ( cg_polygon polygon );
void   CGAL_CALL  CG_polygon_clear  ( cg_polygon polygon );
void    CGAL_CALL  CG_polygon_read  ( FILE *infile, cg_polygon polygon );
void   CGAL_CALL  CG_polygon_write  ( FILE *outfile, const cg_polygon polygon );
void   CGAL_CALL  CG_polygon_add_part  ( cg_polygon polygon, const cg_vertexlist_t *part, int is_hole );
BOOL   CGAL_CALL  CG_polygon_is_null  ( const cg_polygon polygon );
int    CGAL_CALL  CG_polygon_get_parts  ( const cg_polygon polygon, int* part_holes /**//*callee alloc memory, NULL for retrieving parts count.*/);
int    CGAL_CALL  CG_polygon_get_vertices  ( const cg_polygon polygon, int part_index, cg_vertex_t* vertices /**//*callee alloc memory, NULL for retrieving vertices count of part by index*/);
BOOL   CGAL_CALL  CG_polygon_part_is_hole  ( const cg_polygon polygon, int part_index);
double CGAL_CALL  CG_polygon_get_area  ( const cg_polygon polygon );
double CGAL_CALL  CG_polygon_get_length  ( const cg_polygon polygon );
void   CGAL_CALL  CG_polygon_get_extent  ( const cg_polygon polygon, cg_rect_t* extent );
BOOL   CGAL_CALL  CG_polygon_get_relation  ( CG_RELATION rel, cg_polygon primary, cg_polygon secondary );
void   CGAL_CALL  CG_polygon_clip   ( CG_OPCLIP opclip, cg_polygon subject, cg_polygon clip, cg_polygon result );
void   CGAL_CALL  CG_polygon_makeup  ( cg_polygon  polygon );
void   CGAL_CALL  CG_polygon_copy  ( const cg_polygon inpl, cg_polygon outpl );
BOOL   CGAL_CALL  CG_polygon_pt_inside  ( const cg_polygon polygon, const cg_vertex_t* pt );
void   CGAL_CALL  CG_polygon_to_tristrip  ( cg_polygon polygon, cg_tristrip tristrip );
void   CGAL_CALL  CG_rect_to_polygon  ( const cg_rect_t* rc, cg_polygon outpl );
void   CGAL_CALL  CG_circle_to_polygon (double center_xp, double center_yp, double radius, int max_circle_points, cg_polygon outpl);
void   CGAL_CALL  CG_line_make_buffer  ( const cg_vertex_t* start, const cg_vertex_t* end, double distance, int mcp, cg_polygon out_pl );
void   CGAL_CALL  CG_vertices_make_buffer  ( const cg_vertex_t* vertices, int num_vertices, double distance, int mcp, cg_polygon outpl );
void   CGAL_CALL  CG_polyline_make_buffer  ( const cg_vertexlist_t* vl, double distance, int mcp, int closed, cg_polygon out_pl );
void   CGAL_CALL  CG_polygon_make_buffer  ( cg_polygon inpl, double distance, int mcp, cg_polygon outpl );
/**//*=========================================================================== ===
                            Trilist/Trinet/Trifan/Tristrip Functions - tri.c
==============================================================================*/
BOOL   CGAL_CALL  CG_tristrip_create  ( cg_tristrip *tristrip );
void   CGAL_CALL  CG_tristrip_free  ( cg_tristrip tristrip );
int     CGAL_CALL  CG_tristrip_get_strips ( const cg_tristrip tristrip );
int    CGAL_CALL  CG_tristrip_get_vertices ( const cg_tristrip tristrip, int strip_index, cg_vertex_t* vertices );
void   CGAL_CALL  CG_tristrip_clip  ( CG_OPCLIP opclip, cg_polygon subject, cg_polygon clip, cg_tristrip result );
               
/**//*=========================================================================== ===
                            Vertex and Line Functions - cgal.c
==============================================================================*/
double CGAL_CALL  CG_vertex_get_dist  ( const cg_vertex_t* p, const cg_vertex_t* q );
double CGAL_CALL  CG_vertex_get_dist_sq  ( const cg_vertex_t* p, const cg_vertex_t* q );
double CGAL_CALL  CG_vertex_get_area  ( const cg_vertex_t* vl, int num_vertices );
double CGAL_CALL  CG_vertex_get_length  ( const cg_vertex_t* vl, int num_vertices, int closed );
void   CGAL_CALL  CG_vertex_get_extent  ( const cg_vertex_t* vl, int num_vertices, cg_rect_t* rc );
BOOL   CGAL_CALL  CG_vertex_is_equal  ( const cg_vertex_t* p, const cg_vertex_t* q );
void   CGAL_CALL  CG_vertex_offset  ( cg_vertex_t* vertices, int num_vertices, double dx, double dy );
BOOL    CGAL_CALL  CG_line_offset  ( cg_vertex_t* start, cg_vertex_t* end, double d);  /**//* d >0 to the left, d
BOOL   CGAL_CALL  CG_rect_pt_inside  ( const cg_rect_t *rect, const cg_vertex_t* pt );
BOOL   CGAL_CALL  CG_rect_is_overlapped  ( const cg_rect_t* rc1, const cg_rect_t* rc2 );
BOOL   CGAL_CALL  CG_rect_clip_line  ( const cg_rect_t* rect, cg_vertex_t* p, cg_vertex_t* q );
/**//*=========================================================================== ===
                            Shape Functions - shape.c
==============================================================================*/
BOOL   CGAL_CALL  CG_shape_create  ( cg_shape* shape );
void   CGAL_CALL  CG_shape_destroy  ( cg_shape shape );
void   CGAL_CALL  CG_shape_clear  ( cg_shape shape );
void   CGAL_CALL  CG_shape_read  ( FILE *infile, cg_shape shape );
void   CGAL_CALL  CG_shape_write  ( FILE *outfile, const cg_shape shape );
size_t CGAL_CALL  CG_shape_get_byte_size  ( const cg_shape shape );
RESULT CGAL_CALL  CG_shape_read_blob  (  const cg_blob_t*  blob, cg_shape shape );
size_t CGAL_CALL  CG_shape_write_blob  ( cg_blob_t* blob, const cg_shape shape );
void   CGAL_CALL  CG_shape_copy  ( const cg_shape in_shape, cg_shape out_shape );
BOOL   CGAL_CALL  CG_shape_is_null  ( const cg_shape shape );
int    CGAL_CALL  CG_shape_get_type  ( const cg_shape shape );
int    CGAL_CALL  CG_shape_get_parts ( const cg_shape shape, int* part_offsets );
int    CGAL_CALL  CG_shape_get_subparts ( const cg_shape shape, int part_index, int* subpart_offsets );
int    CGAL_CALL  CG_shape_get_vertices ( const cg_shape shape, int part_index, int subpart_index, cg_vertex_t* vertices );
int    CGAL_CALL  CG_shape_get_all_subparts ( const cg_shape shape, int* subpart_offsets );
int    CGAL_CALL  CG_shape_get_all_vertices ( const cg_shape shape, cg_vertex_t* vertices );
void   CGAL_CALL  CG_polygon_to_shape (cg_polygon pl, cg_shape sp);
void   CGAL_CALL  CG_shapeto_polygon (const cg_shape sp, cg_polygon pl);
/**//*=========================================================================== ===
                            Object Functions - object.c
==============================================================================*/
               
/**//*=========================================================================== ===
                            Gemoetry Functions - geometry.c
==============================================================================*/ BOOL   CGAL_CALL    CG_geometry_create  (cg_geometry* g);
void    CGAL_CALL    CG_geometry_destroy  (cg_geometry g);
void   CGAL_CALL    CG_geometry_clear  (cg_geometry g);
BOOL   CGAL_CALL    CG_geometry_is_null  (const cg_geometry g);
size_t CGAL_CALL    CG_geometry_get_byte_size  (const cg_geometry g);
size_t CGAL_CALL    CG_geometry_write_blob  (cg_blob_t* blob, const cg_geometry g);
RESULT CGAL_CALL    CG_geometry_read_blob  (const cg_blob_t* blob, const cg_geometry g);
RESULT CGAL_CALL    CG_shape_to_geometry  (const cg_shape sp, cg_geometry g);
/**//*==================================================== =========================*/
#ifdef __cplusplus
}
#endif
#endif /* ndef _CGAL_H_INCLUDED */
/*=============================================================================
    cgaldef.h
    cheungmine - All rights reserved
    Sep. 8, 2007
=============================================================================*/ #ifndef _CGALDEF_H_INCLUDED
#define _CGALDEF_H_INCLUDED
#ifndef CG_PI
#define CG_PI            3.1415926535897932384626433832795
#endif
#ifndef CG_HFPI
#define CG_HFPI         1.5707963267948966192313216916398
#endif
#ifndef CG_BIPI
#define CG_BIPI         6.283185307179586476925286766559
#endif
#ifndef TRUE
#define FALSE           0
#define TRUE            1
#endif
typedef int                BOOL;
typedef unsigned char    BYTE;
typedef unsigned int    size_t;
/*=============================================================================                     Opaque Struct Handles
=============================================================================*/ typedef  struct  _cg_polygon_t*        cg_polygon;
typedef  struct  _cg_trilist_t*        cg_trilist;
typedef  struct  _cg_trinet_t*        cg_trinet;
typedef  struct  _cg_trifan_t*        cg_trifan;
typedef  struct  _cg_tristrip_t*    cg_tristrip;
typedef  struct   _cg_trilistZ_t*    cg_trilistZ;
typedef  struct  _cg_trinetZ_t*        cg_trinetZ;
typedef  struct  _cg_trifanZ_t*        cg_trifanZ;
typedef  struct  _cg_tristripZ_t*    cg_tristripZ;
typedef  struct  _cg_shape_t*        cg_shape;
typedef  struct  _cg_arclist_t*        cg_arclist;
typedef  struct  _cg_arclistZ_t*    cg_arclistZ;
typedef  struct   _cg_object_t*        cg_object;
typedef  struct  _cg_patch_t*        cg_patch;
typedef  struct  _cg_patchZ_t*        cg_patchZ;
typedef  struct  _cg_geometry_t*    cg_geometry;
/*=============================================================================                         Public  Types
=============================================================================*/ /* shape type */
typedef enum
{
    SHP_NULL    = 0,        /* Null  type*/
    SHP_POINT   = 1,        /* Point type*/
    SHP_LINE    = 2,        /* Line type*/
    SHP_POLYGON = 3            /* Polygon type*/
} CG_SHAPETYPE;
/* arc type */
typedef enum
{
    ARC_LINE        =1,
    ARC_CIRCLE_P    =2,
    ARC_CIRCLE_C    =3,
    ARC_ELLIPSE        =4,
    ARC_SPLINE        =10,
    ARC_BEZIER        =20
} CG_ARCTYPE;
/* 3D Object Types - standard object primitives */
typedef enum
{
    OBJ_BOX                = 1,
    OBJ_CONE            = 2,
    OBJ_SPERE            = 3,
    OBJ_HEMISPHERE        = 4,
    OBJ_GEOSPHERE        = 5,
    OBJ_CYLINDER        = 6,
    OBJ_TUBE            = 7,
    OBJ_TORUS            = 8,
    OBJ_PYRMID            = 9,
    OBJ_PLANE            = 10
} CG_OBJECTTYPE;
/* extended object primitives */
typedef enum
{
    OBJEX_ELLIPSOID        = 16,
    OBJEX_OVAL            = 17,
    OBJEX_HEDRA            = 18,
    OBJEX_CHAMFERBOX    = 19,
    OBJEX_CHAMFERCYL    = 20,
    OBJEX_SPINDLE        = 21,
    OBJEX_GENGON        = 22,
    OBJEX_PRISM            = 23,
    OBJEX_HOSE            = 24,
    OBJEX_L_EXT            = 25,
    OBJEX_C_EXT            = 26,
    OBJEX_CAPSULE        = 27,
    OBJEX_TORUSKNOT        = 28,
    OBJEX_OILTANK        = 29,
    OBJEX_RINGWAVE        = 30,
    OBJ_TEAPOT            = 31
} CG_OBJECTTYPE_EX;
/* Patch type */
typedef enum
{
    PAT_TRILIST            = 1,
    PAT_TRINET            = 2,
    PAT_TRIFAN            = 3,
    PAT_TRISTRIP        = 4
} CG_PATCHTYPE;
/* 3D Patch type */
typedef enum
{
    PAT_TRILISTZ        = 5,
    PAT_TRINETZ            = 6,
    PAT_TRIFANZ            = 7,
    PAT_TRISTRIPZ        = 8
} CG_PATCHZTYPE;
/* Geometry type */
typedef enum
{
    GT_NULL                = 0,
    GT_SHAPE            = 1,
    GT_VERTEX            = 2,
    GT_VERTEXZ            = 3,
    GT_POLYLINE            = 4,
    GT_POLYLINEZ        = 5,
    GT_POLYGON            = 6,
    GT_ARCLIST            = 7,    /* Compound arc line */
    GT_ARCLISTZ            = 8,    /* Compound arc with z */
    GT_PATCH            = 9,
    GT_PATCHZ            = 10,
    GT_OBJECT            = 11    /* Object */
} CG_GEOMETRYTYPE;
/*=============================================================================                         Enum Constants
=============================================================================*/ typedef enum                         /* Set operation type                */
{
    CG_DIFF,                         /* Difference                         */
    CG_INT,                          /* Intersection                       */
    CG_XOR,                          /* Exclusive or                       */
    CG_UNION                         /* Union                              */
} CG_OPCLIP;
typedef enum   /* relationships */
{
    REL_CONTAIN     = 0,        /* TRUE if the primary shape wholly contains the secondary shape */
    REL_CROSS     = 1,        /* TRUE if the intersection of the interiors is a lower dimension than the maximum dimension of the two shapes */
    REL_DISJOINT = 2,        /* TRUE if the intersection of two shapes is empty */
    REL_EQUAL    = 3,        /* TRUE if the two supplied shapes are identical */
    REL_OVERLAP  = 4,        /* TRUE if the intersection of two shapes results in an object of the same geometric dimension */
    REL_TOUCH    = 5,        /* TRUE if the two supplied shapes share a common boundary */
    REL_WITHIN   = 6        /* TRUE if primary_shape is wholly contained within secondary_shape */
} CG_RELATION;
/*=============================================================================                     Public  Struct Types
=============================================================================*/ /* Vertex structure */
typedef struct
{
    union{
        struct{    double  x, y;    };
        double            _v[2];
    };
} cg_vertex_t, cg_point_t;
/* Line structure */
typedef struct
{
    union{
        struct{ double  x1, y1,  x2,  y2; };
        struct{ cg_point_t    start, end;   };
        cg_point_t    _p[2];
        double        _v[4];
    };
} cg_edge_t, cg_line_t;
/* Vertex list structure */
typedef struct
{
    int                num_vertices;        /* Number of vertices in list */
    cg_vertex_t        *vertex;            /* Vertex array pointer */
} cg_vertexlist_t, cg_pointlist_t, cg_polyline_t;
/* rectangle type*/
typedef struct
{
    union{
        struct{
            union{
                struct{    double  min_x, min_y; };
                cg_vertex_t        _min;
            };
            union{
                struct{    double  max_x, max_y; };
                cg_vertex_t        _max;
            };
        };
        double   _v[4];
    };
} cg_rect_t;
/* 3D rect - box type*/
typedef struct
{
    union{
        struct{
            union{
                struct{    double  min_x, min_y, max_x, max_y;     };
                cg_rect_t        _rc;
            };
            double      min_z,    max_z;
        };
        double            _v[6];
    };
} cg_rectZ_t, cg_box_t;
/* circleCR struct */
typedef struct
{
    union{
        struct{    double  xp,  yp; };
        cg_vertex_t        _cp;
    };
    double     r;
} cg_circle_t;
/* Point structure */
typedef struct
{
    union{
        struct{
            union{
                struct{    double  x, y; };
                cg_vertex_t        _p;
            };
            double    z;
        };
        double  _v[3];
    };
} cg_vector_t, cg_pointZ_t, cg_vertexZ_t;
/* 3D Vertex list structure */
typedef struct
{
    int                 num_vertices;  /* Number of vertices */
    cg_vector_t         *vertex;       /* Vertex array */
} cg_vectorlist_t, cg_pointlistZ_t, cg_vertexlistZ_t;
/* Triangle struct */
typedef struct
{
    union{
        struct{    cg_vertex_t    v0, v1, v2; };
        cg_vertex_t            _v[3];
    };
} cg_tri_t;
/* 3D Triangle struct */
typedef struct
{
    union{
        struct{    cg_vector_t v0, v1, v2;    };
        cg_vector_t            _v[3];
    };
    cg_vector_t           n;            /* Normal vector */
} cg_triZ_t;
/* triangle vertex index struct */
typedef struct
{
    union{
        struct{    int i0, i1, i2;    };
        int            _vi[3];
    };
} cg_triindex_t;
/* BLOB struct */
typedef struct
{
    BYTE*          chunk;
    size_t        size;
} cg_blob_t;
/*============================================================================*/ #endif /* ndef _CGALDEF_H_INCLUDED */
分享到: QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0 支持支持0 反对反对0

使用道具 举报

[至尊红钻3级]发帖数量≥1000篇 [未点亮至尊黄钻]威望不足10点 [未点亮至尊蓝钻]在线时间不足10小时 [未点亮至尊绿钻]贡献度不足10点 [未点亮至尊紫钻]金币不足100个 [未点亮至尊粉钻]精华贴数不足10贴 [未点亮至尊黑钻]活跃不足8个
 等级: 
 级别: 金牌会员
 UID:  2   [未点亮普号显示]钻石不足3个
 阁 分: 1290
 阁 望: 0
 阁 献: 0
 活 跃: 0
 发 贴: 1285 (0)
 阁 币: 5  
性 别: I'm 火星人!
阅读权限: 70
在线时长: 0 小时
注册时间: 2016-10-14
最后登录: 2016-10-18
沙发
发表于 2016-10-18 11:01:12 |只看该作者
本回复帖发表于 2016-10-18 11:01:12,感谢hjghjgj对本帖的认真回复,你的回复是对楼主莫大的鼓舞
小手一抖,钱钱到手!

使用道具 举报

[至尊红钻2级]发帖数量≥100篇 [未点亮至尊黄钻]威望不足10点 [未点亮至尊蓝钻]在线时间不足10小时 [未点亮至尊绿钻]贡献度不足10点 [未点亮至尊紫钻]金币不足100个 [未点亮至尊粉钻]精华贴数不足10贴 [未点亮至尊黑钻]活跃不足8个
 等级: 
 级别: 注册会员
 UID:  28   [未点亮普号显示]钻石不足3个
 阁 分: 156
 阁 望: 3
 阁 献: 4
 活 跃: 0
 发 贴: 141 (0)
 阁 币: 5  
性 别: I'm 火星人!
阅读权限: 20
在线时长: 4 小时
注册时间: 2011-1-6
最后登录: 2016-10-21
板凳
发表于 2016-10-19 19:33:31 |只看该作者
本回复帖发表于 2016-10-19 19:33:31,感谢b7823282对本帖的认真回复,你的回复是对楼主莫大的鼓舞
写的真的很不错

使用道具 举报

[至尊红钻2级]发帖数量≥100篇 [未点亮至尊黄钻]威望不足10点 [未点亮至尊蓝钻]在线时间不足10小时 [未点亮至尊绿钻]贡献度不足10点 [未点亮至尊紫钻]金币不足100个 [未点亮至尊粉钻]精华贴数不足10贴 [未点亮至尊黑钻]活跃不足8个
 等级: 
 级别: 注册会员
 UID:  53   [未点亮普号显示]钻石不足3个
 阁 分: 137
 阁 望: 9
 阁 献: 9
 活 跃: 0
 发 贴: 100 (0)
 阁 币: 10  
性 别: I'm 火星人!
阅读权限: 20
在线时长: 0 小时
注册时间: 2011-1-6
最后登录: 2016-10-21
地板
发表于 2016-10-21 22:39:14 |只看该作者
本回复帖发表于 2016-10-21 22:39:14,感谢bangat对本帖的认真回复,你的回复是对楼主莫大的鼓舞
支持一下

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、每个贴内连续回复请勿多余3贴,每个版面回复请勿多余10贴!
4、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!

手机版| 百度搜索:vkee.pw

2012-2015 卓航旗下 GMT+8, 2024-5-18 19:47 , Processed in 0.585779 second(s), 30 queries . Powered by Discuz! X3.2  

禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.如遇版权问题,请及时联系站长(QQ:5213513)

今天是: | 本站已经安全运行: //这个地方可以改颜色

快速回复 返回顶部 返回列表