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