首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要展开的颜色渐变处理中的映射

要展开的颜色渐变处理中的映射
EN

Stack Overflow用户
提问于 2014-06-30 17:27:35
回答 1查看 460关注 0票数 0

你能告诉我如何在下面的代码中改变颜色渐变吗?在我的代码中,我尝试从这里控制颜色渐变:

代码语言:javascript
复制
for( Marker marker : countryMarkers ) {
    for( i=0; i<255; i++ ){
        marker.setColor(color(255, i, 0));    
    }
}

不幸的是,我只得到一种颜色。你能帮帮忙吗?

代码语言:javascript
复制
import de.fhpotsdam.unfolding.mapdisplay.*;
import de.fhpotsdam.unfolding.utils.*;
import de.fhpotsdam.unfolding.marker.*;
import de.fhpotsdam.unfolding.tiles.*;
import de.fhpotsdam.unfolding.interactions.*;
import de.fhpotsdam.unfolding.ui.*;
import de.fhpotsdam.unfolding.*;
import de.fhpotsdam.unfolding.core.*;
import de.fhpotsdam.unfolding.mapdisplay.shaders.*;
import de.fhpotsdam.unfolding.data.*;
import de.fhpotsdam.unfolding.geo.*;
import de.fhpotsdam.unfolding.texture.*;
import de.fhpotsdam.unfolding.events.*;
import de.fhpotsdam.utils.*;
import de.fhpotsdam.unfolding.providers.*;
import java.util.List;
UnfoldingMap map;

void setup() {
  size(800, 600);

int i=0,k=15;

  map = new UnfoldingMap(this, new Microsoft.AerialProvider());
  Location cyprusLocation = new Location(35f, 33f);
  map.zoomAndPanTo(cyprusLocation, 11);
  float maxPanningDistance = 30; // in km
  map.setPanningRestriction(cyprusLocation, maxPanningDistance);
  //map = new UnfoldingMap(this);
  MapUtils.createDefaultEventDispatcher(this, map);

  List<Feature> countries = GeoJSONReader.loadData(this, "Dasos.geo.json");
  List<Marker> countryMarkers = MapUtils.createSimpleMarkers(countries);
  map.addMarkers(countryMarkers);
  /*
  for (Marker marker : countryMarkers) {
 // marker.setColor(color(255, 0, 0));

}
*/
  for (Marker marker : countryMarkers) {
for(i=0;i<255;i++){
marker.setColor(color(255, i, 0));


}
  }

}

void draw() {
  map.draw();
}
void keyPressed() {
  if (key == ' ') {
    map.getDefaultMarkerManager().toggleDrawing();
  }
}
EN

回答 1

Stack Overflow用户

发布于 2014-06-30 20:48:27

您有一个嵌套的循环,因此在显示每个标记之前,您需要为每个标记设置从(255,0 ,0)到(255,255,0)的每种颜色。最后,它们在内部循环中都保留了相同的最后一种颜色...

您可以只使用常规的颜色循环来遍历数组,这样就可以将索引用作for ()的一部分。但是你需要注意最大的数字,比如:

(请注意,您缺少了常规for循环中的int )

代码语言:javascript
复制
for(int i = 0; i < countryMarkers.length; i++){

  countryMarkers[i].setColor(color(255, (i%255), 0));    
}

或者只是在for each中使用递增的var而不是索引...

代码语言:javascript
复制
for (Marker marker : countryMarkers) {

  marker.setColor(color(255, (otherVar++)%255, 0));
   }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24486897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档