예제 #1
0
 static int lua_graphics_set_curve_resolution(lua_State *L) {
     int res = luaL_checknumber(L, 1);
     
     ofSetCurveResolution(res);
     
     return 0;
 }
예제 #2
0
//--------------------------------------------------------------
void ofApp::draw()
{
	if (!foundSolution)
	{
		for (int i = 0; i < ArrayCount(population); i++)
		{
			population[i].Fitness();
		}

		vector<DNA> matingPool = vector<DNA>();
		for (int i = 0; i < ArrayCount(population); i++)
		{
			int n = int(population[i].fitness * ArrayCount(population));
			for (int k = 0; k < n; k++)
			{
				matingPool.push_back(population[i]);
			}
		}

		for (int i = 0; i < ArrayCount(population); i++)
		{
			int a = int(ofRandom(0, matingPool.size()));
			int b = int(ofRandom(0, matingPool.size()));

			DNA parentA = matingPool[a];
			DNA parentB = matingPool[b];

			DNA child = parentA.crossover(parentB);
			child.mutate();

			population[i] = child;
		}
	}

	ofClear(ofColor::white);

	ofSetColor(ofColor::black);
	for (int i = 0; i < ArrayCount(population); i++)
	{
		//string str = population[i].genes;
		population[i].genes[ArrayCount(population[i].genes)] = '\0';

		if (population[i].genes == target)
		{
			foundSolution = true;
			ofNoFill();
			ofSetLineWidth(6);
			ofSetCurveResolution(200);
			ofCircle(ofPoint((int(i / POPULATION_PER_COLUMN) * Y_SPACING) + 100, 
								((i % POPULATION_PER_COLUMN) * X_SPACING) + BUFFER_SPACING), 120);
		}
		

		myFont.drawString(population[i].genes, 
							(int(i / POPULATION_PER_COLUMN) * Y_SPACING) + BUFFER_SPACING, 
							((i % POPULATION_PER_COLUMN) * X_SPACING) + BUFFER_SPACING);

	}

}
예제 #3
0
 void resetDrawSettings()
 {
     m_inSetup = false;
     fill(m_defaultFillColor.getHex());
     stroke(m_defaultStrokeColor.getHex());
     strokeWeight(m_defaultStrokeWeight);
     m_hasFill = m_defaultHasFill;
     m_hasStroke = m_defaultHasStroke;
     ofEnableBlendMode(OF_BLENDMODE_ALPHA);
     smooth(2);
     width = ofGetWidth();
     height = ofGetHeight();
     pmouseX = ofGetPreviousMouseX();
     pmouseY = ofGetPreviousMouseY();
     keyPressed = ofGetKeyPressed();
     mousePressed = ofGetMousePressed();
     mouseButton = NONE;
     if( ofGetMousePressed(0) )
         mouseButton = LEFT;
     else if(ofGetMousePressed(1))
         mouseButton = RIGHT;
     
     
     ofSetCircleResolution(100);
     ofSetCurveResolution(100);
 }
예제 #4
0
//--------------------------------------------------------------
void ofApp::setup()
{
    ofSetFrameRate(100.0f);
    ofSetCurveResolution(100);
    
    _shapeSize = 160;
    
    _defaultRenderer = ofGetCurrentRenderer();
    _shivaVGRenderer = ofPtr<ofxShivaVGRenderer>(new ofxShivaVGRenderer);
    ofSetCurrentRenderer(_shivaVGRenderer);
    
    _shivaVGRenderer->setLineJoinStyle(VG_JOIN_ROUND);
    _shivaVGRenderer->setLineCapStyle(VG_CAP_ROUND);
    
    _createPolygon();
    _createStar();
    _createCurvedPath();
}
예제 #5
0
//--------------------------------------------------------------
void ofApp::draw(){
    
    ofBackground(107,96,136);
    ofSetColor(255);
    
    ofSetLineWidth(1);
    
    //Hair (in retrospect I would have done it with a shape)
    ofDrawTriangle(50,270,
                   110,180,
                   90,340);
    ofDrawTriangle(110,180,
                   125,95,
                   175,100);
    ofDrawTriangle(175,100,
                   390,25,
                   450,75);
    ofDrawTriangle(450,75,
                   550,85,
                   565,220);
    ofDrawTriangle(565,220,
                   600,275,
                   575,275);
    ofDrawTriangle(600,275,
                   665,302,
                   620,325);
    ofDrawTriangle(620,325,
                   655,375,
                   600,350);
    ofDrawTriangle(600,350,
                   625,410,
                   580,395);
    ofDrawTriangle(580,395,
                   600,475,
                   565,445);
    ofDrawTriangle(565,445,
                   575,475,
                   525,455);
    ofDrawTriangle(525,455,
                   530,485,
                   505,465);
    ofDrawTriangle(505,465,
                   475,525,
                   475,445);
    ofDrawTriangle(475,445,
                   435,485,
                   450,400);
    ofDrawTriangle(450,400,
                   425,445,
                   437,417);
    ofDrawTriangle(437,417,
                   410,325,
                   420,325);
    ofDrawTriangle(410,325,//Start of bangs
                   420,405,
                   325,335);
    ofDrawTriangle(325,335,
                   360,415,
                   260,360);
    ofDrawTriangle(260,360,
                   295,427,
                   228,380);
    ofDrawTriangle(228,380,
                   225,430,
                   215,375);
    ofDrawTriangle(215,375,
                   140,330,
                   145,330);
    ofDrawTriangle(90,340,//END OF BANGS
                   90,485,
                   110,440);
    ofDrawTriangle(110,440,
                   160,535,
                   150,465);
    ofDrawTriangle(150,465,
                   178,510,
                   168,455);
    ofDrawTriangle(168,455,
                   175,585,
                   250,525);
    ofDrawTriangle(250,525,
                   250,610,
                   290,560);
    
    //hair coloring
    ofBeginShape();
    ofVertex(90,340);
    ofVertex(140,330);
    ofVertex(145,330);
    ofVertex(215,375);
    ofVertex(228,380);
    ofVertex(260,360);
    ofVertex(325,335);
    ofVertex(410,325);
    ofVertex(420,325);
    ofVertex(437,417);
    ofVertex(450,400);
    ofVertex(475,445);
    ofVertex(505,465);
    ofVertex(525,455);
    ofVertex(565,445);
    ofVertex(580,395);
    ofVertex(600,350);
    ofVertex(620,325);
    ofVertex(600,275);
    ofVertex(565,220);
    ofVertex(450,75);
    ofVertex(175,100);
    ofVertex(110,180);
    ofVertex(50,270);
    
    ofEndShape();
    
    ofBeginShape();
    ofVertex(90,340);
    ofVertex(110,440);
    ofVertex(150,465);
    ofVertex(168,455);
    ofVertex(250,525);
    ofVertex(290,560);
    ofVertex(350,250);
    ofEndShape();
    
    
    //face
    ofSetColor(255,254,227);
    ofBeginShape();
    ofVertex(140,330);
    ofVertex(145,365);
    ofVertex(151,375);
    ofVertex(151,385);
    ofVertex(178,425);
    ofVertex(187,450);
    ofVertex(210,485);
    ofVertex(310,565); //TIP OF CHIN
    ofVertex(327,555);
    ofVertex(425,445);
    ofVertex(437,417);
    ofVertex(410,325);
    ofVertex(420,405);
    ofVertex(325,335);
    ofVertex(360,415);
    ofVertex(260,360);
    ofVertex(295,427);
    ofVertex(228,380);
    ofVertex(225,430);
    ofVertex(215,375);
    ofVertex(140,330);
    
    ofEndShape();
    
    
    //Face lines
    ofSetColor(0);
    ofNoFill();
    ofSetLineWidth(2);
    
    ofBeginShape();
    ofVertex(140,330);
    ofVertex(145,365);
    ofVertex(151,375);
    ofVertex(151,385);
    ofVertex(178,425);
    ofVertex(187,450);
    ofVertex(210,485);
    ofVertex(310,565); //TIP OF CHIN
    ofVertex(327,555);
    ofVertex(425,445);
    ofVertex(437,417);
    ofVertex(410,325);
    ofVertex(420,405);
    ofVertex(325,335);
    ofVertex(360,415);
    ofVertex(260,360);
    ofVertex(295,427);
    ofVertex(228,380);
    ofVertex(225,430);
    ofVertex(215,375);
    ofVertex(140,330);
    
    ofEndShape();
    ofFill();
    
    //Eyelashes
    ofDrawTriangle(151,385,
                   142,395,
                   190,385);
    
    
    
    //Eye
    ofSetCurveResolution(50);
    ofSetColor(174,73,77);
    ofBeginShape();
    ofCurveVertex(155,385);
    ofCurveVertex(155,385);
    ofCurveVertex(155,390);
    ofCurveVertex(173,415);
    ofCurveVertex(175,405);
    ofCurveVertex(173,392);
    ofCurveVertex(168,390);
    ofCurveVertex(168,390);
    ofEndShape();
    
    
    
    //Eye lines
    ofSetColor(0);
    ofNoFill();
    ofSetLineWidth(2);
    ofBeginShape();
    ofCurveVertex(155,385);
    ofCurveVertex(155,385);
    ofCurveVertex(155,390);
    ofCurveVertex(173,415);
    ofCurveVertex(175,405);
    ofCurveVertex(173,392);
    ofCurveVertex(168,390);
    ofCurveVertex(168,390);
    ofEndShape();
    
    ofFill();
    
    
    //Pupil
    ofBeginShape();
    ofCurveVertex(159,385);
    ofCurveVertex(159,385);
    ofCurveVertex(158,390);
    ofCurveVertex(168,405);
    ofCurveVertex(170,395);
    ofCurveVertex(170,395);
    ofEndShape();
    
    //Eyelashes
    ofSetColor(0);
    ofDrawTriangle(151,385,
                   142,395,
                   210,380);
    
    //Eyebrow
    ofDrawTriangle(143,360,
                   185,355,
                   180,352);
    
    //Detail Eye Lines
    ofSetLineWidth(1);
    ofNoFill();
    ofDrawCurve(140,400,
                151,375,
                200,372,
                225,377);
    ofFill();
    
    //Nose
    ofNoFill();
    ofSetLineWidth(2);
    ofDrawCurve(185,325,
                210,375,
                185,450,
                135,425);
    ofDrawCurve(150,445,
                185,450,
                215,465,
                225,450);
    ofFill();
    
    //Smile
    ofDrawCurve(225,475,
                260,505,
                275,500,
                300,475);
    ofNoFill();
    ofDrawCurve(300,475,
                285,496,
                330,465,
                400,410);
    ofFill();
                   
    
    

}