javascript - 渲染对象实例中的颜色不正确,我在整个该死的世界中完全不知道为什么
问题描述
我得到的只是一个带有 rgb(0,255,255) 的小正方形,我希望“r”与对数成比例(betterLog 是对数函数(base,answer)=exponent
一切
var ln = function(g){
var n=g;
n=abs(n);
if(n>1){
n=1/n;
}
var x=n-1;
var output = x;
var i;
for(i = 2; i < 99; i++){
if (i%2 === 0){
output -= pow(x,i)/i;
}
if (i%2 === 1){
output += pow(x,i)/i;
}
}
return output;
};
var betterLog = function(a,b){
var output = ln(b)/ln(a);
return output;
};
var v=475;
var block = function(){
this.render = function(){
var stupidColor=(betterLog(2,v)*20);
fill(stupidColor, 255, 255);
rect(20,20,20,20);
};
};
var newCrap = new block();
var draw = function() {
newCrap.render(v);
};
它只是一个 rgb(0,255,255) idk,如果它的渲染是否正确或不是 js 的新手,它只是不能正常工作,本身没有错误
解决方案
您只需要将Math
对象添加到您的函数中
var ln = function(g){
var n=g;
n=Math.abs(n);
if(n>1){
n=1/n;
}
var x=n-1;
var output = x;
var i;
for(i = 2; i < 99; i++){
if (i%2 === 0){
output -= Math.pow(x,i)/i;
}
if (i%2 === 1){
output += Math.pow(x,i)/i;
}
}
return output;
};
var betterLog = function(a,b){
var output = ln(b)/ln(a);
return output;
};
var canvas = document.querySelector('canvas');
var ctx = canvas.getContext('2d');
var fill = function(r,g,b,a){
ctx.fillStyle = 'rgba('+r+','+g+','+b+','+a||1+')';
};
var rect = function(x,y,w,h){
ctx.fillRect(x,y,w,h);
};
var v=475;
var block = function(){
this.render = function(v){
var stupidColor=(betterLog(2,v)*20);
fill(stupidColor, 255, 255);
console.log({stupidColor});
rect(20,20,20,20);
};
};
var newCrap = new block();
var draw = function() {
newCrap.render(v);
};
draw();
<canvas></canvas>
推荐阅读
- linux - 如何列出文件夹中的所有文件夹并排除特定文件夹
- git - 如何将“符号链接”添加到 git 后面的链接以引用内容,或更改 git 的行为以跟随符号链接?
- php - 文本和类生成表之间的执行顺序
- php - 作为库分发时如何避免 PHP 类名冲突?
- c# - 缺少 C# NPOI 库?
- python - Scrapy + PostgreSQL - 自定义 ETL 的自动项目和管道(截断 > 插入 > Upsert > 删除)
- swiftui - 如何为 SwiftUI Rectangle 着色两种不同的颜色?
- sql - Bigquery 中数字+字母组合的正则表达式
- sqlite - sqlite,如何在没有 ORDER BY 的情况下获取最后 n 条记录
- javascript - 我正在创建一个游戏并在按钮上使用 onsubmit 函数调用来启动游戏。我怎样才能让游戏重新开始?