Changeset 8340:1e1dfa82642b in orange


Ignore:
Timestamp:
06/29/11 17:45:48 (3 years ago)
Author:
Noughmad <Noughmad@…>
Branch:
default
Convert:
2a91ad3be1076715b455bf59e7b3803c98929ce3
Message:

Implement more point shapes

Location:
source/orangegraph
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • source/orangegraph/curve.cpp

    r8337 r8340  
    44#include <QtGui/QBrush> 
    55#include <QtGui/QPen> 
     6 
     7#include <QtCore/qmath.h> 
    68 
    79Curve::Curve(QList< double > xData, QList< double > yData, QGraphicsItem* parent, QGraphicsScene* scene): PlotItem(xData, yData, parent, scene) 
     
    158160  { 
    159161    case Ellipse: 
    160       path.addEllipse(-d,-d,d,d); 
     162      path.addEllipse(-d,-d,2*d,2*d); 
    161163      break; 
    162164       
    163165    case Rect: 
    164       path.addRect(-d,-d,d,d); 
     166      path.addRect(-d,-d,2*d,2*d); 
     167      break; 
     168       
     169    case Diamond: 
     170      path.addRect(-d,-d,2*d,2*d); 
     171      path = QTransform().rotate(45).map(path); 
     172      break; 
     173       
     174    case Triangle: 
     175    case UTriangle: 
     176      path = trianglePath(d, 0); 
     177      break; 
     178       
     179    case DTriangle: 
     180      path = trianglePath(d, 180); 
     181      break; 
     182       
     183    case RTriangle: 
     184      path = trianglePath(d, -90); 
     185      break; 
     186       
     187    case LTriangle: 
     188      path = trianglePath(d, 90); 
     189      break; 
     190       
     191    case Cross: 
     192    case XCross: 
     193      path.lineTo(0,d); 
     194      path.moveTo(0,0); 
     195      path.lineTo(0,-d); 
     196      path.moveTo(0,0);  
     197      path.lineTo(d,0); 
     198      path.moveTo(0,0); 
     199      path.lineTo(-d,0); 
     200      if (symbol == XCross) 
     201      { 
     202          path = QTransform().rotate(45).map(path); 
     203      } 
    165204      break; 
    166205       
     
    370409    return m_yBounds.min; 
    371410} 
     411QPainterPath Curve::trianglePath(double d, double rot) { 
     412    QPainterPath path; 
     413    path.moveTo(-d, -d*sqrt(3)/3); 
     414    path.lineTo(d, -d*sqrt(3)/3); 
     415    path.lineTo(0, 2*d*sqrt(3)/3); 
     416    path.closeSubpath(); 
     417    return QTransform().rotate(rot).map(path); 
     418} 
  • source/orangegraph/curve.h

    r8337 r8340  
    156156  void updateBounds(); 
    157157   
     158  static QPainterPath trianglePath(double d, double rot); 
     159   
    158160  QColor m_color; 
    159161  int m_pointSize; 
Note: See TracChangeset for help on using the changeset viewer.