天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 20|回复: 0

IsPointInBoundary

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
                                    //-------------------------------------//
                                    //  IsPointInBoundary                  //
                                    //-------------------------------------//
int IsPointInBoundary( ads_point pPt, ads_point *pOutline, int nNum, int fAllowOnPerimeter )
{
    int nNumLft;        // Number of Boundary Intersections to the Left of this Point
    int nNumRgt;        // Number of Boundary Intersections to the Right of this Point
    int nKnt;
    int nPrev;
    int nNext;
    ads_point pPt1;     // Used with acdbInters()
    ads_point pInt;     // Intersection Point returned by acdbInters()

    double dTol = 0.1 * pSettings.dMetricScl;

        // Create pPt1 to Be Horzontal from pPt
    Cpoint( pPt1, pPt );
    pPt1[X] += 120.0;

        // For Each Line of the Outline, Intersect a Horizontal line through pPt
    nNumLft = 0;
    nNumRgt = 0;
    for( nKnt=1; nKnt<nNum; nKnt++ ) {
            // Make sure there's potential for a horizontal intersection
        if ( pOutline[nKnt-1][Y] + dTol < pPt[Y] && pOutline[nKnt][Y] + dTol < pPt[Y] ) {
            continue;
        }
        if ( pOutline[nKnt-1][Y] - dTol > pPt[Y] && pOutline[nKnt][Y] - dTol > pPt[Y] ) {
            continue;
        }

            // Check for Horizontal Segment
        if ( fabs( pOutline[nKnt][Y] - pPt[Y] ) < 0.1 && fabs( pOutline[nKnt-1][Y] - pPt[Y] ) < 0.1 ) {
                // If the Point is On this Segment, then use the fAllowOnPerimeter Variable
            if ( IsPointOnLine( pPt, pOutline[nKnt-1], pOutline[nKnt], 0.05 )) {
                if ( fAllowOnPerimeter ) {
                    return( TRUE );
                } else {
                    return( FALSE );
                }
            }

                // Horizontal, if the Points Before and After this Segment are both Below or both Above,
                // Skip this segment
            if ( nKnt-2 < 0 ) {
                if ( AboutEqualPts( pOutline[nNum-1], pOutline[0] )) {
                    nPrev = nNum - 2;
                } else {
                    nPrev = nNum - 1;
                }
            } else {
                nPrev = nKnt - 2;
            }
            if ( nKnt < nNum-1 ) {
                nNext = nKnt + 1;
            } else {
                nNext = 1;
            }
            if ( pOutline[nPrev][Y] + dTol < pPt[Y] && pOutline[nNext][Y] + dTol < pPt[Y] ) {
                continue;
            } else if ( pOutline[nPrev][Y] + dTol > pPt[Y] && pOutline[nNext][Y] + dTol > pPt[Y] ) {
                continue;
            }
        }

            // Check for Segment totally to the Left
        if ( pOutline[nKnt-1][X] + dTol < pPt[X] && pOutline[nKnt][X] + dTol < pPt[X] ) {
            if ( fabs( pOutline[nKnt][Y] - pPt[Y] ) < 0.1 ) {
                if ( fabs( pOutline[nKnt-1][Y] - pPt[Y] ) > 0.1 ) {
                        // Skip this if it's a Horizontal Segment
                    Cpoint( pInt, pOutline[nKnt] );
                    goto ProcessEndPoint;
                }
            }
            nNumLft++;
            continue;
        }

            // Check for Segment totally to the right
        if ( pOutline[nKnt-1][X] - dTol > pPt[X] && pOutline[nKnt][X] - dTol > pPt[X] ) {
            if ( fabs( pOutline[nKnt][Y] - pPt[Y] ) < 0.1 ) {
                if ( fabs( pOutline[nKnt-1][Y] - pPt[Y] ) > 0.1 ) {
                        // Skip this if it's a Horizontal Segment
                    Cpoint( pInt, pOutline[nKnt] );
                    goto ProcessEndPoint;
                }
            }
            nNumRgt++;
            continue;
        }

            // If the Point is On this Segment, then use the fAllowOnPerimeter Variable
        if ( IsPointOnLine( pPt, pOutline[nKnt-1], pOutline[nKnt], 0.05 )) {
            if ( fAllowOnPerimeter ) {
                return( TRUE );
            } else {
                return( FALSE );
            }
        }

            // Intersect with the Segment
        if ( acdbInters( pPt, pPt1, pOutline[nKnt-1], pOutline[nKnt], FALSE, pInt ) != RTNORM ) {
            continue;
        }
            // If it's one of the Vertex Points, process it Differently
        if ( AboutEqualPts( pInt, pOutline[nKnt] )) {
ProcessEndPoint:
            if ( pOutline[nKnt-1][Y] + dTol < pPt[Y] ) {
                if ( nKnt < nNum-1 ) {
                    if ( pOutline[nKnt+1][Y] + dTol < pPt[Y] || fabs( pOutline[nKnt+1][Y] - pPt[Y] ) < 0.1 ) {
                        goto ProcessInt;
                    }
                } else {
                    if ( pOutline[1][Y] + dTol < pPt[Y] || fabs( pOutline[1][Y] - pPt[Y] ) < 0.1 ) {
                        goto ProcessInt;
                    }
                }
            } else {
                if ( nKnt < nNum-1 ) {
                    if ( pOutline[nKnt+1][Y] - dTol > pPt[Y] || fabs( pOutline[nKnt+1][Y] - pPt[Y] ) < 0.1 ) {
                        goto ProcessInt;
                    }
                } else {
                    if ( pOutline[1][Y] - dTol > pPt[Y] || fabs( pOutline[1][Y] - pPt[Y] ) < 0.1 ) {
                        goto ProcessInt;
                    }
                }
            }
        } else {
ProcessInt:
                // See if it's to the Left or Right
            if ( pInt[X] < pPt[X] ) {
                nNumLft++;
            } else {
                nNumRgt++;
            }
        }
    }

//acutPrintf( _T("pPt=(%f,%f), nNumLft=%d, nNumRgt=%d\n"), pPt[X], pPt[Y], nNumLft, nNumRgt );
        // To be Inside the Boundary, both nNumLft and nNumRgt MUST be ODD
    if (( nNumLft % 2 ) == 0 ) {
        return( FALSE );
    }
    if (( nNumRgt % 2 ) == 0 ) {
        return( FALSE );
    }

    return( TRUE );
}

 

 

 

 

IsPointInBoundary

该用户从未签到

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-7-28 09:28:43 | 显示全部楼层
  法拉利膜材作为一种高性能的建筑材料,在建筑、汽车及广告等多个领域有着广泛的应用。以下是对法拉利膜材型号、特点及优点的详细分析:
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223041uiqmeujen4jjj6zv.jpg[/img]
[b]一、法拉利膜材型号[/b]
法拉利膜材有多种型号,包括但不限于以下几种:1302 S2 Flexlight Advanced:这是一种高性能IV型柔性复合膜材,以其卓越的透光性、耐久性和易维护性而受到青睐。942、1202 S2、1002 S2、902 S2、1212 S2、912 S2:这些型号同样属于法拉利膜材系列,各自具有不同的特性和适用范围,但具体特点需根据具体型号进一步分析。需要注意的是,法拉利膜材的型号可能随着产品更新换代而有所变化,具体型号及其特性请参考最新产品资料。
[img=860,1255]http://www.mjgou.com/data/attachment/forum/202403/13/223254bbblwlbvbvsbwlsl.jpg[/img]
[b]二、法拉利膜材特点[/b]
法拉利膜材的特点主要体现在以下几个方面:
1、高强度与耐用性:法拉利膜材采用高强度材料制成,具有良好的抗拉强度和撕裂强度,能够承受较大的外力作用而不易破损。耐用性强,能够在恶劣气候条件下保持稳定的性能,延长使用寿命。
2、透光性与美观性:部分型号如1302 S2 Flexlight Advanced具有高透光性,能够在保持室内光线充足的同时,提供清晰的视野。膜材表面平整光滑,色彩丰富多样,能够满足不同建筑和装饰需求,提升整体美观性。
3、轻质与灵活性:法拉利膜材重量较轻,便于运输和安装,能够降低施工成本和时间。膜材具有一定的柔韧性,能够适应各种复杂形状和结构的设计要求。
4、环保与可回收性:法拉利膜材符合环保要求,部分材料可回收利用,减少了对环境的影响。
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223128owhn0099rrds5h5y.jpg[/img]
[b]三、法拉利膜材优点[/b]
法拉利膜材的优点主要体现在以下几个方面:
1、提升建筑性能:高强度与耐用性使得法拉利膜材能够提升建筑的稳定性和安全性,延长使用寿命。透光性与美观性使得建筑内部光线充足、视野开阔,同时提升整体美观度。
2、降低施工成本:轻质特性使得运输和安装成本降低,施工效率提高。膜材的柔韧性使得施工更加灵活多变,能够适应各种复杂地形和结构要求。
3、节能环保:部分材料可回收利用,符合环保要求,减少了对环境的影响。良好的透光性能够减少室内照明需求,降低能耗。
4、广泛应用领域:
法拉利膜材不仅适用于建筑领域(如体育设施、商业设施、文化设施、交通设施等),还广泛应用于汽车及广告领域(如高档车辆贴膜保护和装饰、广告招贴等),展现出其多功能的特性。

综上所述,法拉利膜材以其高强度、耐用性、透光性、美观性、轻质灵活性以及环保可回收性等优点,在建筑、汽车及广告等多个领域发挥着重要作用。具体型号的选择应根据实际需求和应用场景进行综合考虑。
[url=http://www.mjgou.com/forum-17-1.html][size=93989][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
IsPointInBoundary

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
关于宇立膜材的PVDF膜材,首先需要澄清一点,通常我们提到的是PVDF膜材,而不是PVFDF膜材,这可能是一个打字错误。因此,以下是对宇立膜材品牌以及PVDF膜材的详细介绍。
[b]宇立膜材品牌介绍[/b]
宇立膜材(这里假设为宇立新材料有限公司生产的膜材,因为直接关于“宇立膜材”品牌的具体信息可能较为有限,但浙江宇立新材料有限公司是一个知名的膜材生产商)是一家专注于膜材研发、生产和销售的企业。该公司可能生产多种类型的膜材,包括但不限于PVC、PVDF等。宇立膜材以其优良的品质、稳定的性能和广泛的应用领域在市场上享有良好的声誉。
然而,需要注意的是,由于我无法直接访问宇立公司的最新产品目录或官方网站上的具体信息,以下关于PVDF膜材的详细介绍将基于PVDF膜材的普遍特性进行阐述。
[b]PVDF膜材详细介绍[/b]
一、材料特性
化学稳定性:PVDF(聚偏二氟乙烯)膜材具有优异的化学稳定性,能够抵抗多种化学物质的侵蚀,包括酸、碱和有机溶剂。
热稳定性:PVDF膜材具有良好的热稳定性,能够在高温环境下保持其性能稳定。
机械强度:PVDF膜材具有较高的机械强度,包括抗拉强度、抗撕裂强度和耐磨性,适用于各种需要承受外力的应用场景。
自洁性:PVDF膜材表面不易附着污物,雨水冲刷即可保持清洁,降低了维护成本。
光学性能:PVDF膜材对自然光的透射率适中,能够产生均匀的漫射光,提高室内光线质量。
二、应用领域
PVDF膜材广泛应用于建筑、环保、医疗、电子等多个领域。在建筑领域,PVDF膜材常用于膜结构建筑、屋顶覆盖、遮阳篷等;在环保领域,PVDF膜材可用于废水处理、空气净化等设备的制造;在医疗领域,PVDF膜材可用于血液过滤、药物输送等医疗设备;在电子领域,PVDF膜材则可用于电容器、传感器等电子元件的制造。
三、型号参数(示例)
由于宇立膜材的具体型号参数可能因产品批次、生产标准和客户需求而有所不同,以下仅提供一般性的PVDF膜材型号参数示例:
厚度:常见厚度有0.1mm、0.2mm、0.45mm等多种规格,具体厚度可根据项目需求定制。
颜色:通常为白色或半透明状,也可根据客户需求定制其他颜色。
透光率:根据膜材厚度和涂层处理的不同,透光率可在一定范围内调整。
力学性能:包括拉伸强度、撕裂强度等参数,具体数值需参考产品说明书或联系生产商获取。
请注意,以上信息仅供参考,具体型号参数应以宇立膜材官方发布的信息为准。如果您需要宇立膜材PVDF膜材的详细型号参数,建议您直接联系宇立新材料有限公司或访问其官方网站进行查询。

中国膜结构网_中国空间膜结构协会_中国膜材品牌网_中国ETFE膜结构网_中国PTFE膜结构网([url]www.mjgou.com[/url])欢迎来电咨询!电话:[size=5][color=Red]198-7840-1958[/color][/size] QQ:463017170

 

 

 

 

IsPointInBoundary
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 10:22 , Processed in 0.195468 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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