本文整理汇总了C++中Pixel::interpolate方法的典型用法代码示例。如果您正苦于以下问题:C++ Pixel::interpolate方法的具体用法?C++ Pixel::interpolate怎么用?C++ Pixel::interpolate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pixel
的用法示例。
在下文中一共展示了Pixel::interpolate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: interpolateEdge
void ScanConverter::interpolateEdge(const Pixel &topPixel,
const Pixel &bottomPixel, const bool firstEdge) {
const int ymin = static_cast<int>(topPixel.positionInScreen[1]);
const int ymax = static_cast<int>(bottomPixel.positionInScreen[1]);
const int yminscreen = std::max(ymin, 0);
const int ymaxscreen = std::min(ymax, frameBuffer.height());
for(int y = yminscreen; y < ymaxscreen; y++) {
EdgePair &edgePair = edgePairs[y];
const double t = static_cast<double>(y - ymin) / (ymax - ymin);
const Pixel interpPixel = topPixel.interpolate(bottomPixel, t, shading);
if(firstEdge) {
edgePair.left = interpPixel;
edgePair.right = interpPixel;
}
else {
if(interpPixel.positionInScreen[0] < edgePair.left.positionInScreen[0])
edgePair.left = interpPixel;
else if(interpPixel.positionInScreen[0] > edgePair.right.positionInScreen[0])
edgePair.right = interpPixel;
}
}
}