There is a question about vtk BooleanOperation PolyDataFilter

I have a strange problem with vtk for Boolean arithmetic,When i use the intersection operation, the result I get is as shown in the following figure


when i use the union operation,the result i get is as shown in the following figure

Compare the results in the two images above, It’s like getting the exact opposite result。
Why is this happening?Sincerely hope that seniors can answer my question!My biggest thanks!