我正在写一个Java游戏,我想要实现一个功率计,你会有多难拍摄一些东西.
我需要编写一个在0到100之间取一个int的函数,根据该数字的高度,它将返回Green(功率刻度为0)和Red(功率刻度为100)之间的颜色.
与音量控制的工作方式类似:

我需要对颜色的红色,绿色和蓝色组件进行哪些操作才能生成绿色和红色之间的颜色?
所以,我可以说,getColor(80)它将返回一个橙色(它的值在R,G,B)或getColor(10)将返回更多的绿色/黄色RGB值.
我知道我需要为新颜色增加R,G,B值的分量,但我不知道颜色从绿色 - 红色偏移时的上升或下降.
进展:
我最终使用了HSV/HSB色彩空间,因为我更喜欢渐变色(中间没有深褐色).
我使用的功能是:
public Color getColor(double power)
{
double H = power * 0.4; // Hue (note 0.4 = Green, see huge chart below)
double S = 0.9; // Saturation
double B = 0.9; // Brightness
return Color.getHSBColor((float)H, (float)S, (float)B);
}
Run Code Online (Sandbox Code Playgroud)
其中"功率"是介于0.0和1.0之间的数字.0.0将返回亮红色,1.0将返回亮绿色.
Java Hue图表:

我是OpenGL的新手,我对代码中的所有随机函数都有点不知所措.他们工作,我知道何时使用它们,但我不知道为什么我需要它们或他们实际做什么.
我知道glLoadIdentity()用当前矩阵替换当前矩阵,但究竟是做什么的呢?如果每个程序都需要它,除非另有说明,为什么默认情况下不是单位矩阵?除非我知道他们做了什么,否则我不喜欢在我的代码中使用函数.我应该注意到,我专门为丰富的2D客户端使用OpenGL,所以请原谅我的无知,如果这对于3D非常明显.
关于glMatrixMode(GL_PROJECTION)VS 也有点困惑glMatrixMode(GL_MODELVIEW).
如果我打开图像open("image.jpg"),我怎么能得到一个像素的RGB值,假设我有像素的坐标?
然后,我该怎么做呢?从空白图形开始,"写入"具有特定RGB值的像素?
如果我不必下载任何其他库,我更愿意.
有没有直接测量文字高度的方法?我现在这样做的方法是使用Paint measureText()来获取宽度,然后通过试验和错误找到一个值来获得近似高度.我也一直在搞乱FontMetrics,但所有这些似乎都是近似的方法.
我正在尝试扩展不同分辨率的东西.我可以做到,但我最终得到了令人难以置信的冗长代码,并通过大量计算来确定相对大小.我讨厌它!一定有更好的方法.
我需要从透明背景输出从R到PNG文件的ggplot2图形.基本的R图形一切都很好,但ggplot2没有透明度:
d <- rnorm(100) #generating random data
#this returns transparent png
png('tr_tst1.png',width=300,height=300,units="px",bg = "transparent")
boxplot(d)
dev.off()
df <- data.frame(y=d,x=1)
p <- ggplot(df) + stat_boxplot(aes(x = x,y=y))
p <- p + opts(
panel.background = theme_rect(fill = "transparent",colour = NA), # or theme_blank()
panel.grid.minor = theme_blank(),
panel.grid.major = theme_blank()
)
#returns white background
png('tr_tst2.png',width=300,height=300,units="px",bg = "transparent")
p
dev.off()
Run Code Online (Sandbox Code Playgroud)
有没有办法用ggplot2获得透明背景?
Android屏幕底部的黑色导航栏无法轻松移除.它从3.0开始就是Android的一部分,作为硬件按钮的替代品.这是一张图片:

如何获得此UI元素的宽度和高度的大小(以像素为单位)?
我有一个位图,我想从这个位图裁剪一个圆形区域.圆圈外的所有像素都应该是透明的.我怎样才能做到这一点?

我正在创建一个将在所有Android设备上运行的应用程序.我想为我的应用程序创建xhdpi Graphics.我的应用程序全屏.我对创建图形很困惑.谁能告诉我背景图像的最佳尺寸(以像素为单位).
例如:
建议我在所有设备上出现的最佳尺寸.因为我的图形是我的应用程序的核心.
我希望每台设备都能获得想要的最佳图像.Android将不参与压缩或扩展图像.
我无法区分调用glFlush()和调用之间的实际区别glFinish().
文档说glFlush()并且glFinish()会将所有缓冲操作推送到OpenGL,以便可以确保它们都将被执行,区别在于glFlush()直接返回作为glFinish()块的所有操作都完成.
阅读完定义之后,我认为如果我使用glFlush()它,我可能会遇到向OpenGL提交更多操作而不是执行的问题.所以,只是为了尝试,我换掉了我glFinish()的东西glFlush(),看,我的程序运行(据我所知),完全相同; 帧率,资源使用,一切都是一样的.
所以我想知道这两个调用之间是否存在很大差异,或者如果我的代码使它们运行没有区别.或者应该使用哪一个而不是另一个.我还认为OpenGL会有一些调用,比如glIsDone()检查a的所有缓冲命令glFlush()是否完整(因此不会比OpenGL更快地发送操作到OpenGL),但我找不到这样的函数.
我的代码是典型的游戏循环:
while (running) {
process_stuff();
render_stuff();
}
Run Code Online (Sandbox Code Playgroud)