当前位置: 首页>>代码示例>>Java>>正文


Java Curve.pointCrossingsForLine方法代码示例

本文整理汇总了Java中sun.awt.geom.Curve.pointCrossingsForLine方法的典型用法代码示例。如果您正苦于以下问题:Java Curve.pointCrossingsForLine方法的具体用法?Java Curve.pointCrossingsForLine怎么用?Java Curve.pointCrossingsForLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sun.awt.geom.Curve的用法示例。


在下文中一共展示了Curve.pointCrossingsForLine方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: contains

import sun.awt.geom.Curve; //导入方法依赖的package包/类
/**
 * {@inheritDoc}
 * @since 1.2
 */
public boolean contains(double x, double y) {
    if (!(x * 0.0 + y * 0.0 == 0.0)) {
        /* Either x or y was infinite or NaN.
         * A NaN always produces a negative response to any test
         * and Infinity values cannot be "inside" any path so
         * they should return false as well.
         */
        return false;
    }
    // We count the "Y" crossings to determine if the point is
    // inside the curve bounded by its closing line.
    double x1 = getX1();
    double y1 = getY1();
    double x2 = getX2();
    double y2 = getY2();
    int crossings =
        (Curve.pointCrossingsForLine(x, y, x1, y1, x2, y2) +
         Curve.pointCrossingsForCubic(x, y,
                                      x1, y1,
                                      getCtrlX1(), getCtrlY1(),
                                      getCtrlX2(), getCtrlY2(),
                                      x2, y2, 0));
    return ((crossings & 1) == 1);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:29,代码来源:CubicCurve2D.java

示例2: contains

import sun.awt.geom.Curve; //导入方法依赖的package包/类
/**
    * {@inheritDoc}
    * @since 1.2
    */
   public boolean contains(double x, double y) {
       if (!(x * 0.0 + y * 0.0 == 0.0)) {
           /* Either x or y was infinite or NaN.
            * A NaN always produces a negative response to any test
            * and Infinity values cannot be "inside" any path so
            * they should return false as well.
            */
           return false;
       }
// We count the "Y" crossings to determine if the point is
// inside the curve bounded by its closing line.
double x1 = getX1();
double y1 = getY1();
double x2 = getX2();
double y2 = getY2();
int crossings =
           (Curve.pointCrossingsForLine(x, y, x1, y1, x2, y2) +
            Curve.pointCrossingsForCubic(x, y,
                                         x1, y1,
                                         getCtrlX1(), getCtrlY1(),
                                         getCtrlX2(), getCtrlY2(),
                                         x2, y2, 0));
return ((crossings & 1) == 1);
   }
 
开发者ID:jgaltidor,项目名称:VarJ,代码行数:29,代码来源:CubicCurve2D.java

示例3: pointCrossings

import sun.awt.geom.Curve; //导入方法依赖的package包/类
int pointCrossings(double px, double py) {
    double movx, movy, curx, cury, endx, endy;
    float coords[] = floatCoords;
    curx = movx = coords[0];
    cury = movy = coords[1];
    int crossings = 0;
    int ci = 2;
    for (int i = 1; i < numTypes; i++) {
        switch (pointTypes[i]) {
        case PathIterator.SEG_MOVETO:
            if (cury != movy) {
                crossings +=
                    Curve.pointCrossingsForLine(px, py,
                                                curx, cury,
                                                movx, movy);
            }
            movx = curx = coords[ci++];
            movy = cury = coords[ci++];
            break;
        case PathIterator.SEG_LINETO:
            crossings +=
                Curve.pointCrossingsForLine(px, py,
                                            curx, cury,
                                            endx = coords[ci++],
                                            endy = coords[ci++]);
            curx = endx;
            cury = endy;
            break;
        case PathIterator.SEG_QUADTO:
            crossings +=
                Curve.pointCrossingsForQuad(px, py,
                                            curx, cury,
                                            coords[ci++],
                                            coords[ci++],
                                            endx = coords[ci++],
                                            endy = coords[ci++],
                                            0);
            curx = endx;
            cury = endy;
            break;
    case PathIterator.SEG_CUBICTO:
            crossings +=
                Curve.pointCrossingsForCubic(px, py,
                                             curx, cury,
                                             coords[ci++],
                                             coords[ci++],
                                             coords[ci++],
                                             coords[ci++],
                                             endx = coords[ci++],
                                             endy = coords[ci++],
                                             0);
            curx = endx;
            cury = endy;
            break;
        case PathIterator.SEG_CLOSE:
            if (cury != movy) {
                crossings +=
                    Curve.pointCrossingsForLine(px, py,
                                                curx, cury,
                                                movx, movy);
            }
            curx = movx;
            cury = movy;
            break;
        }
    }
    if (cury != movy) {
        crossings +=
            Curve.pointCrossingsForLine(px, py,
                                        curx, cury,
                                        movx, movy);
    }
    return crossings;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:75,代码来源:Path2D.java

示例4: pointCrossings

import sun.awt.geom.Curve; //导入方法依赖的package包/类
int pointCrossings(double px, double py) {
    if (numTypes == 0) {
        return 0;
    }
    double movx, movy, curx, cury, endx, endy;
    float coords[] = floatCoords;
    curx = movx = coords[0];
    cury = movy = coords[1];
    int crossings = 0;
    int ci = 2;
    for (int i = 1; i < numTypes; i++) {
        switch (pointTypes[i]) {
        case PathIterator.SEG_MOVETO:
            if (cury != movy) {
                crossings +=
                    Curve.pointCrossingsForLine(px, py,
                                                curx, cury,
                                                movx, movy);
            }
            movx = curx = coords[ci++];
            movy = cury = coords[ci++];
            break;
        case PathIterator.SEG_LINETO:
            crossings +=
                Curve.pointCrossingsForLine(px, py,
                                            curx, cury,
                                            endx = coords[ci++],
                                            endy = coords[ci++]);
            curx = endx;
            cury = endy;
            break;
        case PathIterator.SEG_QUADTO:
            crossings +=
                Curve.pointCrossingsForQuad(px, py,
                                            curx, cury,
                                            coords[ci++],
                                            coords[ci++],
                                            endx = coords[ci++],
                                            endy = coords[ci++],
                                            0);
            curx = endx;
            cury = endy;
            break;
    case PathIterator.SEG_CUBICTO:
            crossings +=
                Curve.pointCrossingsForCubic(px, py,
                                             curx, cury,
                                             coords[ci++],
                                             coords[ci++],
                                             coords[ci++],
                                             coords[ci++],
                                             endx = coords[ci++],
                                             endy = coords[ci++],
                                             0);
            curx = endx;
            cury = endy;
            break;
        case PathIterator.SEG_CLOSE:
            if (cury != movy) {
                crossings +=
                    Curve.pointCrossingsForLine(px, py,
                                                curx, cury,
                                                movx, movy);
            }
            curx = movx;
            cury = movy;
            break;
        }
    }
    if (cury != movy) {
        crossings +=
            Curve.pointCrossingsForLine(px, py,
                                        curx, cury,
                                        movx, movy);
    }
    return crossings;
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:78,代码来源:Path2D.java

示例5: pointCrossings

import sun.awt.geom.Curve; //导入方法依赖的package包/类
int pointCrossings(double px, double py) {
    if (numTypes == 0) {
        return 0;
    }
    double movx, movy, curx, cury, endx, endy;
    float[] coords = floatCoords;
    curx = movx = coords[0];
    cury = movy = coords[1];
    int crossings = 0;
    int ci = 2;
    for (int i = 1; i < numTypes; i++) {
        switch (pointTypes[i]) {
        case PathIterator.SEG_MOVETO:
            if (cury != movy) {
                crossings +=
                    Curve.pointCrossingsForLine(px, py,
                                                curx, cury,
                                                movx, movy);
            }
            movx = curx = coords[ci++];
            movy = cury = coords[ci++];
            break;
        case PathIterator.SEG_LINETO:
            crossings +=
                Curve.pointCrossingsForLine(px, py,
                                            curx, cury,
                                            endx = coords[ci++],
                                            endy = coords[ci++]);
            curx = endx;
            cury = endy;
            break;
        case PathIterator.SEG_QUADTO:
            crossings +=
                Curve.pointCrossingsForQuad(px, py,
                                            curx, cury,
                                            coords[ci++],
                                            coords[ci++],
                                            endx = coords[ci++],
                                            endy = coords[ci++],
                                            0);
            curx = endx;
            cury = endy;
            break;
    case PathIterator.SEG_CUBICTO:
            crossings +=
                Curve.pointCrossingsForCubic(px, py,
                                             curx, cury,
                                             coords[ci++],
                                             coords[ci++],
                                             coords[ci++],
                                             coords[ci++],
                                             endx = coords[ci++],
                                             endy = coords[ci++],
                                             0);
            curx = endx;
            cury = endy;
            break;
        case PathIterator.SEG_CLOSE:
            if (cury != movy) {
                crossings +=
                    Curve.pointCrossingsForLine(px, py,
                                                curx, cury,
                                                movx, movy);
            }
            curx = movx;
            cury = movy;
            break;
        }
    }
    if (cury != movy) {
        crossings +=
            Curve.pointCrossingsForLine(px, py,
                                        curx, cury,
                                        movx, movy);
    }
    return crossings;
}
 
开发者ID:bourgesl,项目名称:marlin-renderer,代码行数:78,代码来源:Path2D.java


注:本文中的sun.awt.geom.Curve.pointCrossingsForLine方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。