你能告诉我如何在下面的代码中改变颜色渐变吗?在我的代码中,我尝试从这里控制颜色渐变:
for( Marker marker : countryMarkers ) {
for( i=0; i<255; i++ ){
marker.setColor(color(255, i, 0));
}
}不幸的是,我只得到一种颜色。你能帮帮忙吗?
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();
}
}发布于 2014-06-30 20:48:27
您有一个嵌套的循环,因此在显示每个标记之前,您需要为每个标记设置从(255,0 ,0)到(255,255,0)的每种颜色。最后,它们在内部循环中都保留了相同的最后一种颜色...
您可以只使用常规的颜色循环来遍历数组,这样就可以将索引用作for ()的一部分。但是你需要注意最大的数字,比如:
(请注意,您缺少了常规for循环中的int )
for(int i = 0; i < countryMarkers.length; i++){
countryMarkers[i].setColor(color(255, (i%255), 0));
}或者只是在for each中使用递增的var而不是索引...
for (Marker marker : countryMarkers) {
marker.setColor(color(255, (otherVar++)%255, 0));
}https://stackoverflow.com/questions/24486897
复制相似问题