Changeset 1602:c0d7a9247963 in lemon-0.x
- Timestamp:
- 07/28/05 19:06:13 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2107
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gui/broken_edge.cc
r1601 r1602 46 46 //arrow keeps its position-left button 47 47 48 // if(p.size()==2) 49 // { 50 // Gnome::Canvas::Points points; 51 // my_points[0]=p[0]; 52 // my_points[2]=p[1]; 53 // for(int i=0;i<3;i++) 54 // { 55 // points.push_back(my_points[i]); 56 // } 57 // property_points().set_value(points); 58 // } 48 if(p.size()==2) 49 { 50 Gnome::Canvas::Points points; 51 my_points[0]=p[0]; 52 my_points[2]=p[1]; 53 for(int i=0;i<3;i++) 54 { 55 points.push_back(my_points[i]); 56 } 57 property_points().set_value(points); 58 } 59 set_arrow=true; 59 60 60 61 ////////////////////////////////////////////////////////////////////////////////////////////////////// … … 185 186 ////////////////////////////////////////////////////////////////////////////////////////////////////// 186 187 187 if(p.size()==2)188 {189 //old vector from one to the other node - a190 xy<double> a_v(my_points[2].get_x()-my_points[0].get_x(),my_points[2].get_y()-my_points[0].get_y());191 //new vector from one to the other node - b192 xy<double> b_v(p[1].get_x()-p[0].get_x(),p[1].get_y()-p[0].get_y());193 194 //old vector from one node to the breakpoint - c195 xy<double> c_v(my_points[1].get_x()-my_points[0].get_x(),my_points[1].get_y()-my_points[0].get_y());196 197 //new vector from one node to the breakpoint - d - we have to calculate this one198 xy<double> d_v;199 200 //scalar product of a and b (old and new vector from first point to the other)201 double sab=a_v*b_v;202 //scalar product of c and d (old and new vector from first point to breakpoint)203 double scd=sab*c_v.normSquare()/a_v.normSquare();204 205 std::cout<<" a " << a_v<<" b " <<b_v<<" c " <<c_v<<" sab " <<sab<<" scd "<<scd<<std::endl;206 207 double a=c_v.normSquare();208 double b=2*scd*c_v.y;209 double c=scd*scd-b_v.normSquare()/a_v.normSquare()*c_v.normSquare()*c_v.x*c_v.x;210 211 std::cout<<" a " << a<<" b " <<b<<" c " <<c<<std::endl;212 213 d_v.y=(-b-sqrt(b*b-4*a*c))/2/a;214 215 if(c_v.x!=0)216 {217 d_v.x=(scd-c_v.y*d_v.y)/c_v.x;218 }219 else220 {221 d_v.x=my_points[1].get_x();222 }223 224 std::cout<<" d " << d_v<<std::endl;225 226 my_points[1]=Gnome::Art::Point(d_v.x+p[0].get_x(),d_v.y+p[0].get_y());227 228 Gnome::Canvas::Points points;229 for(int i=0;i<3;i++)230 {231 points.push_back(my_points[i]);232 }233 property_points().set_value(points);234 }188 // if(p.size()==2) 189 // { 190 // //old vector from one to the other node - a 191 // xy<double> a_v(my_points[2].get_x()-my_points[0].get_x(),my_points[2].get_y()-my_points[0].get_y()); 192 // //new vector from one to the other node - b 193 // xy<double> b_v(p[1].get_x()-p[0].get_x(),p[1].get_y()-p[0].get_y()); 194 195 // //old vector from one node to the breakpoint - c 196 // xy<double> c_v(my_points[1].get_x()-my_points[0].get_x(),my_points[1].get_y()-my_points[0].get_y()); 197 198 // //new vector from one node to the breakpoint - d - we have to calculate this one 199 // xy<double> d_v; 200 201 // //scalar product of a and b (old and new vector from first point to the other) 202 // double sab=a_v*b_v; 203 // //scalar product of c and d (old and new vector from first point to breakpoint) 204 // double scd=sab*c_v.normSquare()/a_v.normSquare(); 205 206 // std::cout<<" a " << a_v<<" b " <<b_v<<" c " <<c_v<<" sab " <<sab<<" scd "<<scd<<std::endl; 207 208 // double a=c_v.normSquare(); 209 // double b=2*scd*c_v.y; 210 // double c=scd*scd-b_v.normSquare()/a_v.normSquare()*c_v.normSquare()*c_v.x*c_v.x; 211 212 // std::cout<<" a " << a<<" b " <<b<<" c " <<c<<std::endl; 213 214 // d_v.y=(-b-sqrt(b*b-4*a*c))/2/a; 215 216 // if(c_v.x!=0) 217 // { 218 // d_v.x=(scd-c_v.y*d_v.y)/c_v.x; 219 // } 220 // else 221 // { 222 // d_v.x=my_points[1].get_x(); 223 // } 224 225 // std::cout<<" d " << d_v<<std::endl; 226 227 // my_points[1]=Gnome::Art::Point(d_v.x+p[0].get_x(),d_v.y+p[0].get_y()); 228 229 // Gnome::Canvas::Points points; 230 // for(int i=0;i<3;i++) 231 // { 232 // points.push_back(my_points[i]); 233 // } 234 // property_points().set_value(points); 235 // } 235 236 } 236 237 if(set_arrow)
Note: See TracChangeset
for help on using the changeset viewer.