2014年3月12日水曜日

三角形分割

   for(int i=0;i<this->target.size();i++){
  this->points[i]->x = this->target[i]->x;
  this->points[i]->y = this->target[i]->y;
   }
   count = this->target.size();

   for(int i=0;i<this->target.size();i++){
  this->target[i]->calcuRad(&startPoint,
  this->target[this->target[i]->prevNum],
  this->target[this->target[i]->nextNum]);
  if(this->target[i]->radian == 0.0){
  this->target[i]->life =false;
  this->target[this->target[i]->prevNum]->nextNum = this->target[i]->nextNum;
  this->target[this->target[i]->nextNum]->prevNum = this->target[i]->prevNum;
  count--;
  }
  //fprintf(hoge,"%d,%d\n",(int)this->target[i]->x,(int)this->target[i]->y);
   }
   //fclose(hoge);
   int peke;
 
   while(count>2){
  for(int i=0;i<this->target.size();i++){
  if(this->target[i]->radian > 0 && this->target[i]->life){
  Teto *teto = this->createFrom(i);
  if (this->tetoOK(teto) && !this->otherPointsInTeto(teto))
  {
  this->tetos.push_back(teto);
  this->drawTeto(teto,tetosImg);
  this->target[this->target[i]->nextNum]->prevNum = this->target[i]->prevNum;
  this->target[this->target[i]->nextNum]->calcuRad(&startPoint,
this->target[this->target[this->target[i]->nextNum]->prevNum],
this->target[this->target[this->target[i]->nextNum]->nextNum]);
  this->target[this->target[i]->prevNum]->nextNum = this->target[i]->nextNum;
  this->target[this->target[i]->prevNum]->calcuRad(&startPoint,
this->target[this->target[this->target[i]->prevNum]->prevNum],
this->target[this->target[this->target[i]->prevNum]->nextNum]);
  this->target[i]->life = false;
  count--;
  char c = (char)cvWaitKey ( 1 );
  cvShowImage("tetosImg",tetosImg);
  i++;
  }
  }
  }
   }

0 件のコメント:

コメントを投稿