LINUX.ORG.RU

Сообщения scireseacher

 

qt-mdi-синхронизация_меню

Форум — Development

Как принято синхронизировать меню и панель инструментов главного окна и документа. Например, имеется класс Docum, в котором можно отформатировать одно слово, например жирно и обычно. Так вот, когда объект типа Docum становиться активным в MDI-приложении хотелось бы, чтобы кнопка жирно в меню и панели инструментов стала нажатой или отжатой в зависимости от того какой вид имеет слово в окне (жирный или нормальный). Docum позволяет считать текущее состояния шрифта bool getStatusBold().

scireseacher
()

Qt логика использования QMidArea

Форум — Development

Пока в тестовом примере пробую так распознать тот документ слот которого нужно вызвать:

в конструкторе главного окна приложения

  ws = new QMdiArea;
  setCentralWidget(ws);
  DocWindow* dw     = new DocWindow;
  ws->addSubWindow(dw);
  connect(pactSave,SIGNAL(triggered()),this,SLOT(slotSave()));
  DocWindow* dw2     = new DocWindow;
  ws->addSubWindow(dw2);
  ws->setActiveSubWindow(qobject_cast<QMdiSubWindow*>(dw2));

реализация слота slotSave

void MDIProgram::slotSave(){
  DocWindow* cw = qobject_cast<DocWindow*>(ws->activeSubWindow());
  if(cw) {
     cw->slotSave();
  } else {
     std::cerr << "no active sub win \n";
  }
}

указатель cw содержит ноль, т.к. в консоле печатается no active sub wn.

Что делаю не так?

scireseacher
()

rsync не обновляет

Форум — Desktop

Подскажите почему rsync не переписывает файлы, которые были изменены:

rsync -r -e ssh --progress -v -luser ./public_html/ user@www.server.corporation:/home/user/public_html/

scireseacher
()

Питон::подгрузить модуль

Форум — Development

в каталоге ./Project расположен проект, причем в ./Project/module лежит библиотека libmodule1.so и модуль-обертка для нее module1.py. Нужно в ./Project/task1/script1.py подключить module1.py. Удается так в script1.py

sys.path.append('./../module/')
from module1 import *
но в module1.py пришлось прописать
mod1=ctypeslib.load_library('libmatrix3D','./../module')
при этом если указать './module' то не работает. Но, этот же модуль нужно присоединять, например, в ./Project/task2/task21/script21.py, при этом ./../module не сработает.

Как правильно подгрузить сишную библиотеку libmodule1.so?

scireseacher
()

установить PPTP VPN

Форум — Admin

Нужно настроить VPN соединение в SLED 11 SP1 (на практике подходят пакеты от OpenSUSE 11.3) типа Point-to-Point Tunneling Protocol. Но этоги типа протокола нет нет в nm. Вопрос такой: какой пакет нужно доставить?

пробовал вот этот пакет http://software.opensuse.org/search?q=PPTP&baseproject=SUSE:SLE-11:SP1&am...

fusiondirectory-plugin-pptp
server:php:applications/SLE_11_SP1
PPTP connectivity plugin
но получил вот такое сообщение
Ошибка при инициализации репозитария.
Подробности:
SUSE:SLE-11:SP1: [|] По указанным URL-адресам не найдено действительных метаданных
История:
 - [|] Repository type can't be determined.

scireseacher
()

вызвать функция для numpy массива (антибыдлокод)

Форум — Development

Работаю над ускорением программы. Нужно функцию intersection_line_and_triangle вызвать для numpy массива Fig размерностью Nx9 (здесь 9 координат для трех вершин треугольника, координаты храняться в каждом Fig) . + хотелось бы получить булев массив good_indx (состоящий из True и False, соответственно, чтобы сделать присвоение X_good[good_indx]=X[good_indx]), для этого нужно избавиться еще от одно цикла :)

def intersection_line_and_triangle(x,y,tri):
    a=tri[:3];  b=tri[3:6];  c=tri[6:];
    n=normal(tri)
    d=dot(a-x,n)/dot(y-x,n)
    if d<0 or d>1:
        return False
    zz=x+d*(y-x);
    za=a-zz; zb=b-zz;  zc=c-zz
    mza=linalg.norm(za);
    mzb=linalg.norm(zb);
    mzc=linalg.norm(zc)
    if arccos(dot(za,zb)/mza/mzb) + arccos(dot(zb,zc)/mzb/mzc) + arccos(dot(zc,za)/mzc/mza) < 2.*pi:
        return False
    else:
        return True

быдлокод (работающий, но очень медленно) здесь:

def intersection_line_and_border(x,y,b):
    res=False
    for i in range(b.shape[0]):
        if intersection_line_and_triangle(x,y,b[i]):
            res=True
    return res


  for i in range(X):
        for j in range(3):
            if not intersection_line_and_border(center_point,X[i][3*j:3*(j+1)],Fig):
                X_good[i][3*j:3*(j+1)]=X[i][3*j:3*(j+1)]

scireseacher
()

заставить работать mayavi

Форум — Admin

Как можно заставить работать mayavi?

> ./test.py
Traceback (most recent call last):
  File "./test.py", line 8, in <module>
    from enthought.mayavi import mlab
  File "/usr/lib/python2.6/site-packages/enthought/mayavi/mlab.py", line 27, in <module>
    from enthought.mayavi.tools.camera import view, roll, yaw, pitch, move
  File "/usr/lib/python2.6/site-packages/enthought/mayavi/tools/camera.py", line 23, in <module>
    from engine_manager import get_engine
  File "/usr/lib/python2.6/site-packages/enthought/mayavi/tools/engine_manager.py", line 9, in <module>
    from enthought.traits.api import HasTraits, Instance
ImportError: No module named api

ставил с opensuse.org, и пакета api там нет http://software.opensuse.org/search?q=traits api&baseproject=openSUSE:Fac...

scireseacher
()

scipy интерполяция

Форум — Development

Есть гладкая кривая на плоскости, заданная набором координат. Нужно выполнить глобальную интерполяцию этой кривой и получить новые координаты, разбивающие кривую на приблизительно равные по длине части. Кривая может быть и замкнутая и разомкнутая. Тоже самое нужно сделать в пространстве.

Чтобы не изобретать велосипед, пытаюсь найти решение в scipy. Есть интересная функция scipy.interpolate.splprep (как я понял находит B-сплайны для N-мерных кривых «Find the B-spline representation of an N-dimensional curve», т.е. и на плоскости и в пространстве будут работать) и удалось частично понять как сработать на плоскости

tt=numpy.linspace(numpy.pi,-numpy.pi,N+1,endpoint=True)
X[:,0]=numpy.cos(tt)
X[:,1]=numpy.sin(tt)
...
if is_interpolate:  
      tck,u = interpolate.splprep([X[:,0],X[:,1]],k=3,s=0) 
      unew=numpy.linspace(1.0,0.0,nt+1,endpoint=True) 
      out = interpolate.splev(unew,tck)
Но я застрял, возникло много вопросов. Как передать этой функции информацию о том что кривая замкнута, разомкнута и условия на концах? Можно ли от параметра unew=[1..0] перейти к длине дуги. Вообще, как быть с пространственной поверхностью (работать с кривыми или сразу с поверхностями)?

Прошу поделится опытом и может знаете какие-нибуть ссылки на статьи, книжки, которые помогут понять работу splprep. Может какой-нить специализированный формум знаете.

scireseacher
()

numpy поэлементное and для bool массивов

Форум — Development

Есть массив, нужно выделить только те элементы, которые удовлетворяют сразу двум условиям, например, в массиве координат b, вторая координата меньше нуля и больше -2. По отдельности условия работают, а вместе не получается.

 b=array([[1,1],[1,-1],[1,-5]])
>>> b[:,1]<0 
array([False,  True,  True], dtype=bool)
>>> b[:,1]>-2 
array([ True,  True, False], dtype=bool)
>>> b[:,1]<0 and b[:,1]>-2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Д.б. False, True, False.

scireseacher
()

ускорить вычисление адреса

Форум — Development

Есть процедура в которую передается два вектора b_row и b_col. Процедура возвращает матрицу matrix. Нужно ускорить работу этой процедуры.

void solve_matrix( const int n_row, const double* b_row, const int n_col, const double* b_col, ..., double* matrix) 
{
   int i,j;
   double xip0,xip1,xin0,xin1,...; 
   double xjp0,xjp1,xjn0,xjn1,...;
   ...
   for(i=0; i<n_row-1; ++i) {
       xip0=*(b_row+2*i);
       xip1=*(b_row+2*i+1);
       xin0=*(b_row+2*i+2);
       xin1=*(b_row+2*i+3);
        for(j=0; j<n_col-1; ++j){
           xjp0=*(b_col+2*j);
           xjp1=*(b_col+2*j+1);
           xjn0=*(b_col+2*j+2);
           xjn1=*(b_col+2*j+3);
           ...
           *(matrix+i*(n_col-1)+j)= ...;
   }
   ....
}

1. пробую избавиться от вычисления адреса, но почему-то не работает:

   ...
   xin0 = *(b_row++);
   xin1 = *(b_row++);
   for(i=0; i<n_row-1; ++i) {
       xip0=xin0;
       xip1=xin1;
       xin0=*(b_row++);
       xin1=*(b_row++);
       ...
       double ptr_j = b_col;
       xjn0=*(ptr_j++);
       xjn1=*(ptr_j++);
       for(j=0; j<n_col-1; ++j){
           xjp0=xjn0;
           xjp1=xjn1;
           xjn0=*(ptr_j++);
           xjn1=*(ptr_j++);
           ...
           *(matrix++) = ... ;
что здесь не так?

2. как еще можно ускорить эту процедуру?

scireseacher
()

numpy.vim

Форум — Desktop

существует ли numpy.vim или что-то подобное для расцветки синтаксиса с numpy/scipy? python.vim не выделяет структуры тапа numpy.array, linalg.solve ,,, и читать не удобно.

scireseacher
()

oowrite глючит в SLED11

Форум — Desktop

SLED11. запускаю oowriter, появляется логотип и исчезает. Окна редактора нет. что можно сделать?

~> oowriter 
/usr/share/themes/Synchronicity/gtk-2.0/gtkrc:46: Clearlooks configuration option "menuitemstyle" is not supported and will be ignored.
/usr/share/themes/Synchronicity/gtk-2.0/gtkrc:47: Clearlooks configuration option "listviewitemstyle" is not supported and will be ignored.
/usr/share/themes/Synchronicity/gtk-2.0/gtkrc:48: Clearlooks configuration option "progressbarstyle" is not supported and will be ignored.

~> ps ax | grep oo
 1606 ?        S      0:00 [bluetooth]
 2877 ?        S<s    0:00 /usr/sbin/bluetoothd --udev
 4730 ?        S      0:00 bluetooth-applet
12066 pts/2    Sl     0:00 /usr/lib/ooo3/program/soffice.bin -writer -splash-pipe=5
12072 pts/2    S+     0:00 grep oo

scireseacher
()

RSS подписка на новые темы