和
colorMode(HSB);
colorMode(RGB);
我可以设置颜色模式。
显然函数
getColorMode()
不存在。是否有其他解决方案来获得颜色模式?
我想做的是这样的
int cMode = getColorMode();
colorMode(HSB);
// draw stuff
colorMode(cMode);
这段代码在我的类(class)
Track
中。我想绘制一个记录的GPS轨迹,色调值应该由速度或海拔高度控制。现在,我在完成绘图后将颜色模式设置回 RGB。当然,最好将其设置回之前的颜色模式,而不仅仅是假设它已经是 RGB。
最佳答案
我们来看看 the source for PApplet
。该类包含此变量:
public PGraphics g;
这是
colorMode()
函数:public void colorMode(int mode) {
if (recorder != null) recorder.colorMode(mode);
g.colorMode(mode);
}
这告诉我们
PApplet#colorMode()
实际上只是 PGraphics#colorMode()
的快捷方式。所以让我们看看 the source for
PGraphics
。来自该类的 colorMode()
函数最终指向这里:public void colorMode(int mode,
float max1, float max2, float max3, float maxA) {
colorMode = mode;
//more code
这将我们引向
colorMode
变量:/** The current colorMode */
public int colorMode; // = RGB;
换句话说,要获得当前的颜色模式,您必须从
PApplet
到其 g
变量,再到其 colorMode
变量。如果你在草图中,它看起来像这样:void setup() {
size(500, 500);
colorMode(HSB);
}
void draw() {
background(0);
if(g.colorMode == RGB){
println("RGB");
}
else if(g.colorMode == HSB){
println("HSB");
}
}
如果您不在草图中,则需要使用
PApplet
关键字传入 this
实例。PApplet mySketch;
int colorMode = mySketch.g.colorMode;
关于processing - 处理中的 getColorMode(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37469859/